JS为什么有的整数乘小数可以得到正确的结果,有的不可以?

function multiply(arg1, arg2) {
    return arg1*arg2
}
console.log(multiply(20, 8.2))
console.log(multiply(200, 8.2))

阅读 2.4k
2 个回答

JS 的浮点数运算采用 IEEE754 标准,运算结果的精度上有什么问题都不奇怪。

你这种情况自己四舍五入就好了。

或者使用 decimal.jsnumber-precision 之类的高精度计算库。

百度搜索IEEE754, 计算机中浮点数的表示规则。
简而言之,计算机中浮点数是不精确的。浮点数的比较不能用相等(==),只能比较一下小误(float1 - float2 < 10E6)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题