解决小数计算时的误差

例: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
    }

你可能感兴趣的:(解决小数计算时的误差)