JavaScript 判断小数是否相等的解决办法

内容摘要
这篇文章主要为大家详细介绍了JavaScript 判断小数是否相等的简单示例,具有一定的参考价值,可以用来参考一下。

判断小数是否相等

function epsEqu(x,y) {  
  return Mat
文章正文

这篇文章主要为大家详细介绍了JavaScript 判断小数是否相等的简单示例,具有一定的参考价值,可以用来参考一下。

判断小数是否相等
function epsEqu(x,y) {  
  return Math.abs(x - y) < Math.pow(2, -52);
}
// 举例
0.1 + 0.2 === 0.3 // false
epsEqu(0.1 + 0.2, 0.3) // true
感谢 IAmFineThanks 提供的 Number.EPSILON ,Number.EPSILON === Math.pow(2, -52)因此上述方法也可以这么写
function epsEqu(x,y) {  
  return Math.abs(x - y) < Number.EPSILON;
}
用户输入的是十进制数字,计算机保存的是二进制数。所以计算结果会有偏差,所以我们不应该直接比较非整数,而是取其上限,把误差计算进去。这样一个上限称为 machine epsilon,双精度的标准 epsilon 值是 2^-53 (Math.pow(2, -53))

注:关于JavaScript 判断小数是否相等的简单示例的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!