私はJavaスクリプトで計算を行っていますが、10進数の精度による問題に直面しています。 私は、正確な計算を投稿することはできませんが、これは私が書く予期しない結果Javascriptの予期しない結果
につながるやっているものです: alert(100.01-36.01);
//結果は64
ですが、私が書くとき: alert(100.01-37.01);
//結果63.00000000000001
であり、このように38.01 ...になります。 このような予期しない動作が表示されている理由を教えてください。 私は計算に固執しています。
ありがとうございます。
機械は無限の精度を持たないので、浮動小数点値を比較するときは常に注意する必要があります.64はマシンの特殊な数値であり、2の累乗であり、非常にうまく表現できます。 –
これはあなたを助けるかもしれませんhttp://stackoverflow.com/questions/588004/is-javascripts-math-broken –
これは少なくとも100万回以上の質問がありましたので、質問を投稿する前に検索を使用してください。 – Niko