0

次の式を使用して Pi の値を推定しています。

ここに画像の説明を入力

次の C++ コードを使用します。

double sub = 0;
int prec = 1000; //How many iterations to use in estimate.

for(int i = 1; i <= prec; i++){
    double frac = 1/((3+(2*(i-1))) * pow(3, i));
    sub += (i == 1) ? 1-frac : (i%2) ? -frac : frac;
}

double pi = sqrt(12)*sub;

cout << "Pi estimated with precision of " << prec << " iterations is " << pi << ".\n";

私の問題は、1000回(または100000回)の繰り返しでも、得られる最高の精度が3.14159. 計算で各数値を使用static_cast<double>()してみましたが、それでも同じ結果が得られます。ここで何か間違ったことをしていますか、それともこれがこのメソッドがもたらす最大精度ですか? 私は C++ は初めてですが、プログラミングは初めてです。

4

1 に答える 1

5

問題は、すべての精度を出力しないことです。あなたは電話する必要があります、

std::cout << std::setprecision(10) << ...
于 2013-10-11T23:54:37.827 に答える