浮点数误差
对于javascript的数字来说,“机器精度”的值通常为2^-52
ES6开始,该值定义在Number.EPSILON中,我们可以拿来直接用,也可以为ES6之前的版本写polyfill1
2
3if( !Number.EPSILON ){
Number.EPSILON = Math.pow(2,-52);
}
可以用Number.EPSILON来比较两个数字是否相等(在制定误差范围内)1
2
3function numbersCloseEnoughToEqual( n1, n2 ){
return Math.abs( n1 - n2 ) < Number.EPSILON ;
}