列如: 0.1+0.2 = 0.30000000000000004 。并不等于 0.3
// 转为整数运算
function adNum(num1, num2){
var b, n1, n2;
// 获取小数位个数
try {
n1 = num1.toString().split('.')[1].length
} catch (e) {
n1 = 0
}
try {
n2 = num2.toString().split('.')[1].length
} catch (e){
n2 = 0
}
// 获取大的小数位长度 10 的几次幂
b = Math.pow(10, Math.max(n1, n2))
return (num1 * b + num2 * b) / b
}
console.log(adNum(0.1, 0.2, '+')) // 0.3
网友评论