当我添加0.1+0.2时,我得到的是0.30000000000000004,但当我在ruby 1.8.7中添加相同的数字时,我得到的是正确的答案0.3。我通过四舍五入获得0.3,但我只想通过添加0.1和0.2来获得ruby 1.9.2上的0.3
发布于 2011-03-24 14:02:09
你的老红宝石骗了你:
$ ruby -v
ruby 1.8.7 (2010-06-23 patchlevel 299) [x86_64-linux]
$ irb
irb(main):001:0> printf("%40.40f\n", 0.1 + 0.2)
0.3000000000000000444089209850062616169453
=> nilFloating point numbers是非常棘手的野兽。
https://stackoverflow.com/questions/5415304
复制相似问题