永远不要测试某个特定的浮点数值

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

你可能感兴趣的:(JavaScript)