Ruby integers are objects of class
Fixnum
or
Bignum.
Fixnum objects
hold integers that fit within the native machine word minus 1 bit.
Whenever a
Fixnum exceeds this range, it is automatically converted
to a
Bignum object, whose range is effectively limited only
by available memory. If an operation with a
Bignum result
has a final value that will fit in a
Fixnum, the result will
be returned as a
Fixnum.
Integers are written using an optional leading sign, an optional base
indicator (
0 for octal,
0x for hex, or
0b
for binary), followed by a string of digits in the appropriate base.
Underscore characters are ignored in the digit string.
You can get the integer value corresponding to an ASCII
character by preceding that character with a question mark. Control
and meta combinations of characters can also be generated using
?\C-
x, ?\M-
x, and ?\M-\C-
x.
The control version of
ch is
ch&0x9f, and the meta
version is
ch | 0x80. You can get the integer value of a backslash
character using the sequence
?\\.
123456 # Fixnum
123_456 # Fixnum (underscore ignored)
-543 # Negative Fixnum
123_456_789_123_345_789 # Bignum
0xaabb # Hexadecimal
0377 # Octal
-0b1010 # Binary (negated)
0b001_001 # Binary
?a # character code
?A # upper case
?\C-a # control a = A - 0x40
?\C-A # case ignored for control chars
?\M-a # meta sets bit 7
?\M-\C-a # meta and control a
|
A numeric literal with a decimal point and/or an exponent is turned
into a
Float object, corresponding to the native
architecture's
double data type. You must
follow the decimal point with a digit, as
1.e3 tries to invoke the method
e3 in class
Fixnum.
12.34
|
� |
12.34
|
-.1234e2
|
� |
-12.34
|
1234e-2
|
� |
12.34
|