Error adding with ruby-1.9.2

When I add 0.1+0.2 , I get 0.30000000000000004 , but when I add the same number in ruby 1.8.7 , I get the correct answer 0.3 . I get 0.3 rounding, but I just want to get 0.3 on ruby 1.9.2 by adding 0.1 and 0.2

+7
source share
2 answers

To do this, you need to make large Cartesian work.

  (BigDecimal ('0.1') + BigDecimal ("0.2")). To_f

See link below:

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

+11
source

Your old ruby ​​lied to you:

 $ 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 

Floating-point numbers are very tricky animals.

+7
source

All Articles