Skip to content

Maintenance Ruby 3.4 gets fixes, but no new features. Switch to Ruby 4.0 →

instance method

String#to_i

(?::int radix) -> ::Integer
to_i(base = 10) → integer

Returns the result of interpreting leading characters in self as an integer in the given base (which must be in (0, 2..36)):

Example
'123456'.to_i     # => 123456
'123def'.to_i(16) # => 1195503

With base zero, string object may contain leading characters to specify the actual base:

Example
'123def'.to_i(0)   # => 123
'0123def'.to_i(0)  # => 83
'0b123def'.to_i(0) # => 1
'0o123def'.to_i(0) # => 83
'0d123def'.to_i(0) # => 123
'0x123def'.to_i(0) # => 1195503

Characters past a leading valid number (in the given base) are ignored:

Example
'12.345'.to_i   # => 12
'12345'.to_i(2) # => 1

Returns zero if there is no leading valid number:

Example
'abcdef'.to_i # => 0
'2'.to_i(2)   # => 0
See also #to_f #to_r #to_c #to_s also in 4.1 · 4.0 · 3.3 · 3.2 · 3.1 · 3.0