ruby浮点错误

有人可以解释为什么乘以100会得到一个不太准确的结果但是乘以10会得到更准确的结果吗?


± % sc

Loading development environment (Rails 3.0.1)

>> 129.95 * 100

12994.999999999998

>> 129.95*10

1299.5

>> 129.95*10*10

12995.0


开满天机
浏览 624回答 3
3回答

慕田峪4524236

没有完全等于的浮点数129.95。所以你的语言使用的是一个接近它的值。当该值乘以100时,结果接近12995,但它恰好不等于12995.(它也不完全等于它代替的原始值的100倍129.95。)所以你的翻译打印出一个十进制数接近(但不等于)的值,129.95 * 100它表示它不完全是12995.它恰好129.95 * 10恰好等于1299.5。这主要是运气。最重要的是,从不期望任何浮点运算的平等,只有“接近”。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby