1

重複の可能性:
JavaScriptの浮動小数点演算は壊れていますか?

これは非常に初歩的な計算機科学の質問になるでしょう。次のC#について考えてみます(JSについても同じことが言えます。一般的に、doubleで数学がどのように機能するかを推測します)。

var i = .01;
i+=.01; //i=.02
i+=.01; //i=.03
i+=.01; //i=.04
i+=.01; //i=.05
i+=.01; //i=.0600000000005 (I may have added/missed a few 0s in there)
i+=.01; //i=.07
i+=.01; //i=.08
i+=.01; //i=.09
i+=.01; //i=.0999999999992 (I may have added/missed a few 9s in there)

では、何が起こっているのでしょうか。また、i +.01の合計を正確に予測するにはどうすればよいでしょうか。

4

1 に答える 1

0

ダブルは、数値の小数点を取得するための単なる方法ではありません。浮動小数点演算を使用します。ピートベッカーによるこの記事は、それがどのように機能するかを説明するのに良い仕事をしています。

于 2012-12-25T15:25:27.413 に答える