试图做一些真正简单的事情,但这让我非常头疼。
我需要编写一个函数,将 double 参数的值四舍五入到 n 指定的小数位数。
我已经完成了大部分操作,但由于某种原因,结果 = ..... 仅计算舍入算法的第一行(见下文)
结果不是对数字进行四舍五入,而是将小数点移动 n 指定的位数。我的代码如下:
#include <iostream>
#include <cmath>
using namespace std;
double round(double x, int n)
{
double result;
result =
x * pow(10, n);
x = x + 0.5;
x = floor(x);
x = x / pow(10, n);
return result;
}
int main()
{
cout << round(-2.9, 0) << endl;
cout << round(-2.59, 1) << endl;
cout << round(.0059, 2) << endl;
cout << round(1.23467, 3) << endl;
cout << round(9.999999, 4) << endl;
return 0;
}