js循环累加以后,结尾出现很多小数

在js中 231242.44+281898.31+190742.02+197754.05
这样相加以后等于901636.8200000001,为什么会出现这么多位小数

var sumInvoice = 0;
var sumRepairInvoice = 0;
for (let i in e) {
    
    
	sumInvoice += e[i].invoice;
	sumRepairInvoice += e[i].repairInvoice;
}
this.sumInvoice = sumInvoice;
this.sumRepairInvoice = sumRepairInvoice;

解决办法:javascript精度的问题,浮点数只能无限接近一个值,不会具体的等于一个值。用toFixed(n)方法限制它的精度就好了。

var sumInvoice = 0;
var sumRepairInvoice = 0;
for (let i in e) {
    
    
	sumInvoice += e[i].invoice;
	sumRepairInvoice += e[i].repairInvoice;
}
this.sumInvoice = sumInvoice.toFixed(2);
this.sumRepairInvoice = sumRepairInvoice.toFixed(2);

猜你喜欢

转载自blog.csdn.net/qq_42899245/article/details/109678611
今日推荐