私は2の負の累乗を計算するプログラムを書いていました。次の2つのコードスニペットを使用しました。
cout.precision(3);
cout << scientific << pow(2.0, p) << endl;
と
ans = pow(2.0, p);
printf("%.3e\n", ans);
の場合p = -8271
、は正しい答え(1.517e-2490)を示しますが、 (6.929e-310)cout
については大きく異なる答えが得られます。printf
なぜこの不一致が発生するのですか?
UbuntuでCodeblocksを使用しています。