重複の可能性:
JavaScript の浮動小数点演算は壊れていますか?
注 - parseFloat() に関する他の投稿を読みましたが、問題が発生する理由についての適切な説明が見つかりませんでした。(または、私はそれを理解していませんでした)。
このコード...
var sum = parseFloat("1.001") + parseFloat(".001");
alert(parseFloat(sum));
出力 ...
1.0019999999999998
加算sum.toFixed(2)
には小数点以下 2 桁のみが含まれることを読みました。
しかし、この長い小数が発生する理由を 100% 理解しているわけではありません。
バイナリでparseFloat(sum)
表しますか? sum
もしそうなら、1/2^x + ... は .001 または 1/1000 に正確に等しくならないので、1.001 はバイナリで表現できませんか?