例:0.1 + 0.2 不等于0.3
0.1+0.2=0.30000000000000004
解决的中心思想是:把小数转成整数后再运算
/**
* 精确加法
*/
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
}
网友评论