js 计算精确度问题——基础积累

最近在写一个后台管理系统时,遇到一个问题。

场景:输入三个值,计算三个值的和。
在这里插入图片描述
然后就遇到了上图中的js精确度的问题。

然后在浏览器控制台复现了。这个是js精确度的问题。

1.通过函数解决js精确度问题

add(num1, num2) {
    
    
  var p1 = 0;
  var p2 = 0;
  if (num1.toString().split(".").length > 1) {
    
    
    p1 = num1.toString().split(".")[1].length;
  }
  if (num2.toString().split(".").length > 1) {
    
    
    p2 = num2.toString().split(".")[1].length;
  }
  var p = p1 > p2 ? p1 : p2;
  var n1 = num1 * Math.pow(10, p);
  var n2 = num2 * Math.pow(10, p);
  var result = (n1 + n2) / Math.pow(10, p);
  return result;
},

2.使用

let val1 = 0.6;
let val2 = 0.1;
let val3 = 0.1;
this.add(this.add(val1,val2),val3);//这样就可以计算出三个值的和了

3.测试

在这里插入图片描述
完成!!!

猜你喜欢

转载自blog.csdn.net/yehaocheng520/article/details/124729400