可以利用Number.toLocaleString,默认最多保留3位有效小数
+(0.1 + 0.7).toLocaleString() // 0.8
+(0.1 + 0.2).toLocaleString() // 0.3
只知道最基础的方式,把小数乘一个倍数转成整数计算,计算完毕除相同倍数.
function strip(num, precision = 12) {
return parseFloat(num.toPrecision(precision))
}
function precision(num1,num2){
num1Length = num1.toString().length;
num2Length = num2.toString().length;
let len = num1Length > num2Length ? num1Length : num2Length;
return (num1 + num2).toPrecision(len);
}
console.log(precision(0.1,0.7));
bignumber
都乘以10然后取整
Most helpful comment
可以利用
Number.toLocaleString,默认最多保留3位有效小数