It is not a good solution, but you can add a small fraction to the number that will be rounded. Then, the floor function will return that number and ignore the small fraction.

Code:inline double round(double X, int k) { double tempDouble = X*pow(10.0,k) + 0.5 + 0.000000001; return ( floor(tempDouble) / pow(10.0,k) ); }