项目中遇到的问题,0.1+0.2为0.30000000000000004,与想象中不一样,
公共的方法
addNum (num1, num2) {
num1 == undefined ? num1 = 0 : ''
num2 == undefined ? num2 = 0 : ''
var sq1, sq2, m;
try {
sq1 = num1.toString().split(".")[1].length;
}
catch (e) {
sq1 = 0;
}
try {
sq2 = num2.toString().split(".")[1].length;
}
catch (e) {
sq2 = 0;
}
m = Math.pow(10, Math.max(sq1, sq2));
return (num1 * m + num2 * m) / m;
},
原理是:先判断俩个相加数谁的小数点后位数多,以多的为准,值乘以10的小数位的幂数,相加以后,再除以10的小数位的幂数