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
|