es6中用Number.epsilon 来表示 1 与大于 1 的最小浮点数之间的差。
实际上表示的是 可以接受的最小精度 即 误差如果小于这个值则表示误差没有意义
0.1+0.2 == 0.3 //false
如下代码可做比较
function withinErrorMargin (left, right) {
// 误差可接受范围小于 Math.abs(left - right) < Number.EPSILON * Math.pow(2, 2); 即生效
return Math.abs(left - right) < Number.EPSILON * Math.pow(2, 2);
}
0.1 + 0.2 === 0.3 // false
withinErrorMargin(0.1 + 0.2, 0.3) // true
1.1 + 1.3 === 2.4 // false
withinErrorMargin(1.1 + 1.3, 2.4) // true