js 小数加法的精度问题解决(0.1+0.2 != 0.3,怎么解决?)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 小数加法的精度问题解决(0.1+0.2 != 0.3,怎么解决?)相关的知识,希望对你有一定的参考价值。

参考技术A 0.1+0.2 != 0.3,怎么解决?
(1) 在计算机中,数字无论是定点数还是浮点数都是以多位二进制的方式进行存储的。存储一个数值所使用的二进制位数比较多,这样得到的数会更加精确。
(2) 由于存储空间有限,无法整除的小数的时候就会取一个近似值,在js中如果这个近似值足够近似,那么js就会认为他就是那个值。
(3) 在0.1 + 0.2这个式子中,0.1和0.2都是近似表示的,在他们相加的时候,两个近似值进行了计算,导致最后得到的值是0.30000000000000004,此时对于JS来说,其不够近似于0.3,于是就出现了0.1 + 0.2 != 0.3 这个现象。
当然,有时两个近似值进行计算的时候,得到的值是在JS的近似范围内的,于是就可以得到正确答案。
(4) 解决办法:
就是我们想办法规避掉这类小数计算时的精度问题,那么最常用的方法就是将浮点数转化成整数计算。因为整数都是可以精确表示的。
对于0.1 + 0.02 我们需要转化成 ( 10 + 2 ) / 1e2
公共方法使用

以上是关于js 小数加法的精度问题解决(0.1+0.2 != 0.3,怎么解决?)的主要内容,如果未能解决你的问题,请参考以下文章

JS小数精度问题 为什么 0.1+0.2 不等于 0.3

mathjs用法

js 小数计算失去精度

js加减乘除精度

JS的计算时精度丢失问题

js加减法运算多出很多小数点