解决小数计算时的误差

2019-12-27  本文已影响0人  八妹sss

例: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
    }
上一篇 下一篇

猜你喜欢

热点阅读