Float objects represent inexact real numbers using the native architecture's double-precision floating point representation. Floating point has a different arithmetic and is an inexact number. So you should know its esoteric system. see following: docs.sun.com/source/806-3568/ncg_goldberg.html wiki.github.com/rdp/ruby_tutorials_core/ruby-talk-faq#wiki-floats_imprecise en.wikipedia.org/wiki/Floatin