vue JS小数相加 相乘
项目中使用到金额以及数量的计算, 出现了 js 精度失去精度的问题
// methods 方法
methods: {
// 获取总金额
changeIpt(e, row) {
let that = this;
that.form.totalAmount = 0;
that.form.totalNumber = 0;
row.amount = this.accMul(row.number, row.unitPrice);
console.log(this.inWarehouseDetailList, "获取数据");
for (let i = 0; i < this.inWarehouseDetailList.length; i++) {
// 方法调用 传入 (金额, 数量)
var money = this.accMul(
this.inWarehouseDetailList[i].number,
this.inWarehouseDetailList[i].unitPrice
);
that.form.totalAmount += money;
that.form.totalNumber += Number(this.inWarehouseDetailList[i].number);
this.$forceUpdate();
}
},
// 数字相乘
accMul(arg1, arg2) {
var m = 0,
s1 = arg1.toString(),
s2 = arg2.toString();
try {
m += s1.split(".")[1].length;
} catch (e) {}
try {
m += s2.split(".")[1].length;
} catch (e) {}
return (
(Number(s1.replace(".", "")) * Number(s2.replace(".", ""))) /
Math.pow(10, m)
);
},
// 金额相加
addMul(arg1, arg2) {
var m = 0,
s1 = arg1.toString(),
s2 = arg2.toString();
try {
m += s1.split(".")[1].length;
} catch (e) {}
try {
m += s2.split(".")[1].length;
} catch (e) {}
return (
Number(s1.replace(".", "")) +
Number(s2.replace(".", "")) / Math.pow(10, m)
);
},
}