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
string.c
View on GitHub ↗
static VALUE
rb_str_to_i(int argc, VALUE *argv, VALUE str)
{
int base = 10;
if (rb_check_arity(argc, 0, 1) && (base = NUM2INT(argv[0])) < 0) {
rb_raise(rb_eArgError, "invalid radix %d", base);
}
return rb_str_to_inum(str, base, FALSE);
}
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