有人可以解释为什么乘以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。这主要是运气。
最重要的是,从不期望任何浮点运算的平等,只有“接近”。
- 3 回答
- 0 关注
- 663 浏览
添加回答
举报
0/150
提交
取消