Numbers
Numbers are not primitives; each number is an object, an instance of one of Ruby’s numeric classes. Numeric is Ruby’s base class for numbers. The numeric class Fixnum is used for integers, fixed-length numbers with bit lengths of the native machine word, minus 1. The Float class is for floating-point numbers, which use the native architecture’s double-precision floating-point representation internally. The Bignum class is used to hold integers larger than Fixnum can hold. Bignums are created automatically if any operation or assignment yields a result too large for Fixnum. The only limitation on the size integer Bignum can represent is the available memory in the operating system:
2411 # integer, of class Fixnum
2_411 # integer, of class Fixnum, underscore ignored
241.1 # float, of class Float
3.7e4 # scientific notation, of class Float
3E4 # scientific notation, of class Float
3E-4 # scientific notation, with sign before
exponent
0444 # octal, of class Fixnum
0xfff # hexadecimal, of class Fixnum
0b1101 # binary, of class Fixnum
4567832704 # integer, of class BignumFigure 1 shows a hierarchy of Ruby’s math classes.

Figure 1. Hierarchy of Ruby math classes
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access