可能重複:
Is JavaScript’s Floating-Point Math Broken?地理解JavaScript parseFloat行爲
注意 - 我已經在parseFloat()讀取的其他職位,但我還沒有找到一個很好的解釋,爲什麼這個問題發生。 (或者我只是不理解它)。
此代碼...
var sum = parseFloat("1.001") + parseFloat(".001");
alert(parseFloat(sum));
輸出...
1.0019999999999998
我讀過,加入sum.toFixed(2)
將只包含2位小數。
但是,我不會100%理解爲什麼這個長十進制會發生。
parseFloat(sum)
代表sum
二進制嗎?如果是這樣,那麼1.001不能用二進制表示,因爲1/2^x + ...不能等於.001或1/1000。
感謝你的鏈接 –