JS为什么有的整数乘小数可以得到正确的结果,有的不可以?
function multiply(arg1, arg2) {
return arg1*arg2
}
console.log(multiply(20, 8.2))
console.log(multiply(200, 8.2))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
JS 的浮点数运算采用 IEEE754 标准,运算结果的精度上有什么问题都不奇怪。
你这种情况自己四舍五入就好了。
或者使用 decimal.js、number-precision 之类的高精度计算库。
百度搜索IEEE754, 计算机中浮点数的表示规则。
简而言之,计算机中浮点数是不精确的。浮点数的比较不能用相等(==),只能比较一下小误(float1 - float2 < 10E6)。