因为JavaScript采用的是IEEE 754语言规范导致的问题,小数计算并不十分精确,如何解决小数精确的问题:
设置一个误差范围值:机器精度
es6之前
if (!Number.EPSILON) {
Number.EPSILON = Math.pow(2, -52);
}
function numbersCloseEnoughToEqual(a, b) {
return Math.abs(a - b) < Number.EPSILON
}复制代码
es6之后,将这个误差范围值设置Number.EPSILON中,可以直接使用;