今天在页面上用到了js进行小数相加2.6+1.3,结果应该是:3.9的,然而结果是3.9000000004…. ,莫名其妙,还以为是我写的程序有问题,后来查了下才知道这是javascript浮点运算的一个bug.
解决方案
1.这是因为Javascript的数字类型是以64位的IEEE 754格式存储的。
2.解决方法把相加的结果做下处理
function toNumber(value) {
var val = Number(value)
if(!isNaN(parseFloat(val))) {
val = val.toFixed(2);
}
return val;
}