码迷,mamicode.com
首页 > Web开发 > 详细

JS处理小数相加出现溢出的问题

时间:2019-08-31 10:47:53      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:turn   ==   数字   return   定义   误差   匹配   个数   cti   

1、首先呈现一下问题:

let a = 0.1 + 0.2
let b = 0.3
我们的期望:a==b 为true
结果:a==b 为false
打印一下a和b的值分别为:0.30000000000000004 和 0.3

2、在实际应用中如何匹配a和b的值呢?
有一种常见的方法是设置一个误差范围值,通常称为“机器精度”。可以使用Number.EPSILON来比较两个数字是否相等。
下面定义方法如下:
function numberCloseEqual(n1,n2) {
return Math.abs(n1 - n2) < Number.EPSILON;
}

3、结果:
numberCloseEqual(a, b) // true
numberCloseEqual(0.000001,0.000002) // false


JS处理小数相加出现溢出的问题

标签:turn   ==   数字   return   定义   误差   匹配   个数   cti   

原文地址:https://www.cnblogs.com/zjingjing/p/11437964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!