ruby-1.9.2的附加错误

当我添加0.1+0.2我得到0.30000000000000004但是当我在ruby 1.8.7添加相同的数字时,我得到了正确答案0.3 。 我通过舍入得到0.3 ,但我只想通过加0.10.2得到ruby 1.9.20.2

你需要bigdecimal来做这项工作。

 (BigDecimal('0.1')+ BigDecimal(“0.2”))。to_f

见以下链接:

http://redmine.ruby-lang.org/issues/4394

你的旧ruby骗了你:

 $ 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 => nil 

浮点数是非常棘手的野兽。

Interesting Posts