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 Bignum

Figure 1 shows a hierarchy of Ruby’s math classes.

Hierarchy of Ruby math classes

Figure 1. Hierarchy of Ruby math classes

Get Ruby Pocket Reference now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.