export function remainder(arg1,arg2){
let arr = [];
let rem = arg1 % arg2 // 余数
let divisor = arg1 - rem // 除数
for(let i = 0; i < arg2; i++ ){
if( i === 0 ){
//不可以整除则加上余数
arr.push((divisor / arg2) + rem)
}else{
//否作就是可以整除
arr.push(divisor / arg2)
}
}
return arr
}
//金额改变,每期的支付金额也随着改变
"formAdd.actualTotalAmount"(odlval) {
// console.log(odlval);
// console.log(this.formAdd.PepNumber);
if (odlval != null && odlval != undefined && this.formAdd.PepNumber != null) {
let resArr = remainder(odlval, this.formAdd.PepNumber);
this.formAdd.payPeriodList.map((items, indexs) => {
resArr.forEach((item,index) => {
if(indexs === index){
items.payAmount = item
}
})
});
}
},
由于项目支付多个商品添加就会涉及到多个金额相加如果是与遇到商品0.1和0.2的商品相加就会出现问题 因此可以用下面的方法来解决
//priceDecimal这个数组存放所有商品的价格
priceDecimal.push(zzItem.price * level.productNum)
let num = priceDecimal.reduce((old, now) => {
return accAdd(old,now)
}, 0)
price = num
// 加法
export function accAdd(arg1, arg2) {
var r1, r2, m
try {
r1 = arg1.toString().split('.')[1].length
} catch (e) {
r1 = 0
}
try {
r2 = arg2.toString().split('.')[1].length
} catch (e) {
r2 = 0
}
m = Math.pow(10, Math.max(r1, r2))
return (arg1 * m + arg2 * m) / m
}