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

Posted zjingjing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS处理小数相加出现溢出的问题相关的知识,希望对你有一定的参考价值。

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处理小数相加出现溢出的问题的主要内容,如果未能解决你的问题,请参考以下文章

Js中带有小数的值相加减的解决方案

JS中小数相加相减时出现很长的小数点的解决方式

js 两个小数相加的问题

js 两个小数相加的问题

js日期相加的问题

关于js中小数运算丢失精度的处理办法