JS 数字相加出现多个小数的问题

今天在页面上用到了js进行小数相加119.01+0.01,结果大家都知道应该是:119.02的,然而结果是119..0200000…. ,莫名其妙的,还以为是我写的程序有问题,后来查了下才知道这是javascript浮点运算的一个bug. 

解决方案

1.这是因为Javascript的数字类型是以64位的IEEE 754格式存储的。

 

2.解决方法把相加的结果做下处理

function toDecimal(x) {
var val = Number(x)
if(!isNaN(parseFloat(val))) {
val = val.toFixed(2);
}
return val;
}

 

posted @ 2019-05-24 18:46  旧巷里的旧少年  阅读(6655)  评论(0编辑  收藏  举报