1、计算完成以后对总数进行处理
function strip(num,precision = 12) {
return +parseFloat(num.toPrecision(precision));
}
2、小数的加减乘除
function add(num1,num2) {
const num1Digits = (num1.toString().split('.')[1] || '').length;
const num2Digits = (num2.toString().split('.')[1] || '').length;
const baseNum = Math.pow(10,Math.max(num1Digits,num2Digits));
return (num1 * baseNum + num2 * baseNum) / baseNum;
}
......
ES6 封装为一个类 定义四个静态方法
export default class NB {
static add(num1,num2) {
const num1Digits = (num1.toString().split('.')[1] || '').length;
const num2Digits = (num2.toString().split('.')[1] || '').length;
const baseNum = Math.pow(10,num2Digits));
return (num1 baseNum + num2 baseNum) / baseNum;
}
static minus(num1,num2Digits));
return (num1 baseNum - num2 baseNum) / baseNum;
}
.....
}
在需要使用的地方导入 然后通过类名直接调用里面的方法。
import NB from "./NB";
NB.add(1.56,0.1); // 1.66 != 1.6600000000000001
NB.minus(3.3,2.1); // 1.2 != 1.1999999999999997