On Thu, 29 Oct 2009, Aldric Giacomoni wrote:

> I found this blog entry:
> http://raveendran.wordpress.com/2009/06/29/ruby-big-decimal/
> Which shows the following..
>
> irb(main):011:0> require 'bigdecimal'
> => true
> irb(main):012:0> x = BigDecimal("123.6") - BigDecimal("123")
> => #<BigDecimal:28c5b84,'0.6E0',4(16)>
> irb(main):013:0> puts x.to_f
> 0.6
> => nil
> irb(main):014:0> puts f=123.6 - 123
> 0.599999999999994
> => nil
> irb(main):015:0> 123.6 - 123
> => 0.599999999999994
> irb(main):016:0> 123.6 - 123.0
> => 0.599999999999994
> irb(main):017:0>
>
> That's a little strange.. Isn't it?

No, it's not.  Welcome to the wonderfully confusing world of floating 
point math...