最近在前端项目中遇到js在操作小数进行加减乘除时,会丢失精度,解决该问题可以使用工具方法进行加减乘除操作,工具方法如下:
//加法
export function addNum(num1, num2) {
var baseNum, baseNum1, baseNum2;
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
return (numMulti(num1,baseNum) + numMulti(num2,baseNum)) / baseNum;
}
//减法
export function minusNum(num1,num2){
var r1,r2,m,n;
try{
r1 = num1.toString().split(".")[1].length
}catch(e){
r1 = 0
}
try{
r2 = num2.toString().split(".")[1].length
}catch(e){
r2 = 0
}
m = Math.pow(10,Math.max(r1, r2));
//动态控制精度长度
n = (r1>=r2) ? r1 : r2;
// return ((arg1*m-arg2*m)/m).toFixed(n);
ret