本当に簡単なことをしようとしていますが、かなり頭が痛いです。
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;
}