- 
                Notifications
    
You must be signed in to change notification settings  - Fork 8.9k
 
Closed
Description
阮老师您好:
文中提到
function withinErrorMargin (left, right) {
  return Math.abs(left - right) < Number.EPSILON;
}
的方法检测是否在误差范围内
Number.EPSILON大于1的最小可表示数 与 1的差,根据IEEE754标准,就是(Number.parseInt("1"+"0".repeat(51)+"1",2) * 2 ** -52) - 1  === 2 ** -52;
并不能用来检测是否在误差范围内,比如withinErrorMargin(1.1 + 1.3, 2.4) === false;
老师,我这还有个疑问就是浮点数计算的误差最大值要怎么计算,通过parseFloat(value.toFixed(12))舍去误差方法中的toFixed括号中的值取多少更合适,谢谢
Metadata
Metadata
Assignees
Labels
No labels