Javascript的數字類型是以64位的IEEE 754格式存儲的
浮點數值計算會產生舍入誤差的問題,這是使用基於IEEE754 數值的浮點計算的通病
浮點數值的最高精度是 17 位小數,但在進行算術計算時其精確度遠遠不如整數。例如,0.1 加 0.2的結果不是 0.3,而是 0.30000000000000004。這個小小的舍入誤差會導致無法測試特定的浮點數值。
例如:
// 不要做這樣的測試!
if (a + b == 0.3){
alert("You got 0.3.");
}
在這個例子中,我們測試的是兩個數的和是不是等於 0.3。如果這兩個數是 0.05 和 0.25,或者是 0.15和 0.15 都不會有問題
// 因爲在這裏
0.1+0.2 != 0.3
1.1+1.3 != 2.4