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;
}

猜你喜欢

转载自www.cnblogs.com/jxldjsn/p/10919717.html