首页 > 其他 > 详细

关于0.1+0.2和0.3是否相等的判断及误差范围值的设置

时间:2021-04-11 21:41:46      阅读:19      评论:0      收藏:0      [点我收藏+]

现象:js中判断 0.1+0.2 === 0.3 的结果为false

如何判断 0.1+0.2 和 0.3 相等呢

常见方法1:设置一个误差范围值,通常称为“机器精度”,对js的数字来说,这个值通常是2^-52(2.220446049250313e-16)。

ES6中,该值定义在Number.EPSILON中。可以直接使用。ES6之前版本可以写polyfill:

if (!Number.EPSILON) {

  Number.EPSILON = Math.pow(2,-52);

}

使用为:

function numbersCloseEnoughToEqual(arg1, arg2) {

  return Math.abs(Arg1, arg2) < Number.EPSILON;

}

常见方法2:将两边的参数值变成整数后进行比较

例:判断0.1+0.2和0.3是否相等,可将值扩大为1+2和3是否相等

关于0.1+0.2和0.3是否相等的判断及误差范围值的设置

原文:https://www.cnblogs.com/shenhf/p/14644733.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!