Sad*_*tam 7 ruby floating-accuracy ruby-1.9.2
当我添加,0.1+0.2我得到了0.30000000000000004,但当我添加相同的数字,ruby 1.8.7我得到了正确的答案0.3.我得到0.3四舍五入,但我只是想0.3上ruby 1.9.2通过增加0.1和0.2
ash*_*ai_ 11
你需要bigdecimal来做这项工作.
(BigDecimal('0.1') + BigDecimal("0.2")).to_f
见以下链接:
http://redmine.ruby-lang.org/issues/4394
你的旧红宝石骗你了:
$ 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
Run Code Online (Sandbox Code Playgroud)
浮点数是非常棘手的野兽.