Float objects represent inexact real numbers using the native architecture’s double-precision floating point representation.
Floating point has a different arithmetic and is a inexact number. So you should know its esoteric system. see following:
-
http://wiki.github.com/rdp/ruby_tutorials_core/ruby-talk-faq#floats_imprecise
-
http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems
When mathn is required, Float is changed to handle Complex numbers.
Constants
ROUNDS = INT2FIX(FLT_ROUNDS)
RADIX = INT2FIX(FLT_RADIX)
MANT_DIG = INT2FIX(DBL_MANT_DIG)
DIG = INT2FIX(DBL_DIG)
MIN_EXP = INT2FIX(DBL_MIN_EXP)
MAX_EXP = INT2FIX(DBL_MAX_EXP)
MIN_10_EXP = INT2FIX(DBL_MIN_10_EXP)
MAX_10_EXP = INT2FIX(DBL_MAX_10_EXP)
MIN = DBL2NUM(DBL_MIN)
MAX = DBL2NUM(DBL_MAX)
EPSILON = DBL2NUM(DBL_EPSILON)
INFINITY = DBL2NUM(INFINITY)
NAN = DBL2NUM(NAN)