在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);