为了账号安全,请及时绑定邮箱和手机立即绑定

ruby浮点错误

ruby浮点错误

开满天机 2019-09-03 20:09:15
有人可以解释为什么乘以100会得到一个不太准确的结果但是乘以10会得到更准确的结果吗?± % scLoading development environment (Rails 3.0.1)>> 129.95 * 10012994.999999999998>> 129.95*101299.5>> 129.95*10*1012995.0
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

没有完全等于的浮点数129.95。所以你的语言使用的是一个接近它的值。当该值乘以100时,结果接近12995,但它恰好不等于12995.(它也不完全等于它代替的原始值的100倍129.95。)所以你的翻译打印出一个十进制数接近(但不等于)的值,129.95 * 100它表示它不完全是12995.它恰好129.95 * 10恰好等于1299.5。这主要是运气。


最重要的是,从不期望任何浮点运算的平等,只有“接近”。


查看完整回答
反对 回复 2019-09-03
  • 3 回答
  • 0 关注
  • 619 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信