Javascript 小数精度计算

2021-03-25  本文已影响0人  孟大仙

列如: 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
上一篇 下一篇

猜你喜欢

热点阅读