まくまくRubyノート
数値と文字列を変換する (to_i, to_f, to_s)
2011-10-01

Ruby で数値と文字列の変換を行う場合は、下記のメソッドでほぼ事足ります。

  • to_i: 文字列 → 数値(整数)への変換
  • to_f: 文字列 → 数値(浮動小数点数)への変換
  • to_s: 数値 → 文字列への変換

to_ito_s はデフォルトで十進数として処理しようとしますが、パラメータで任意の基数 (base) を指定することもできます。

2進数表記の文字列 → 数値

i = "1111".to_i(2)  # => 15
i = "0b1111".to_i(2)  # => 15

8進数表記の文字列 → 数値

i = "1000".to_i(8)  # => 512
i = "01000".to_i(8)  # => 512

16進数表記の文字列 → 数値

i = "FFFF".to_i(16)  # => 65535
i = "0xFFFF".to_i(16)  # => 65535

文字列を to_i で数値に変換する場合、先頭の連続した 0 は無視されます。

i = "00001234".to_i  # => 1234

数値 → 2進数表記の文字列

bin = 15.to_s(2)           # => "1111"
bin = sprintf("%08b", 15)  # => "00001111"
2011-10-01