函数解决js数值相加精度丢失问题

浏览器控制台输入

console.log(0.1+0.2)

结果为0.30000000000000004

 

 

 

 

 

 当我们尝试将0.1和0.2相加时,结果应该是0.3,但是在JavaScript中,结果却是0.30000000000000004。这是因为0.1和0.2在二进制中无法被精确表示,所以在进行相加时会产生舍入误差,从而导致精度丢失。

为了简单处理这个问题,可以使用JavaScript内置的toFixed()方法将数值转换为指定位数的小数,从而避免精度丢失,可以将toFixed()方法返回的结果转换为数字,然后再进行相加。示例代码如下:

function the_plus(totalA, totalB) {
    return (0.1*totalA.toFixed(4) + 0.1*totalB.toFixed(4))*10;
}

 

posted @ 2023-04-13 17:12  变形金刚之猩猩将军  阅读(77)  评论(0编辑  收藏  举报