加减乘除精度计算问题
加法精度
function add(...val) {
let max = 0
let count = 0
for (let i = 0; i < val.length; i++) {
const strVal = val[i].toString()
const index = strVal.indexOf('.')
let num = 0
if (index > -1) {
num = strVal.length - 1 - index
max = num > max ? num : max
}
}
for (let i = 0; i < val.length; i++) {
count += Math.round(val[i] * Math.pow(10, max))//Math.round() 函数返回一个数字四舍五入后最接近的整数。
}
return count / Math.pow(10, max)
}
console.log(add(0.1,0.2))
乘法精度
function accMul(arg1, arg2) {
var m = 0,
s1 = arg1.toString(),
s2 = arg2.toString();
try {
m += s1.split(".")[1].length
} catch (e) {}
try {
m += s2.split(&#