JS小数加减乘除丢失精度问题的解决办法

最近在前端项目中遇到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

猜你喜欢

转载自blog.csdn.net/chali1314/article/details/130078594
今日推荐