1

ここでコードを取得しました。Win と Mac OS で実行すると、結果の精度が異なります。誰か助けてください。

const double c = 1 - exp(-2.0);
double x = (139 + 0.5) / 2282.0;
x = ( 1 - exp(-2 * (1 - x))) / c;

結果はどちらも 0.979645005277687 ですが、16 進数は異なります。

Win: 3FEF59407B6B6FF1
Mac: 3FEF59407B6B6FF2

どうすれば同じ結果を得ることができますか。

4

1 に答える 1

1

どうすれば同じ結果を得ることができますか。

OS Xの数学ライブラリが計算にまったく同じ実装/アルゴリズムを使用しない限り、e ^ xまったく同じ結果を得ることができません。浮動小数点の計算は正確ではありません。対処してください。

于 2013-03-05T06:05:38.657 に答える