module function Kernel.#Integer

Integer(arg, base = 0, exception: true) -> Integer | nil[permalink][rdoc][edit]

引数を整数(Fixnum,Bignum)に変換した結果を返します。

引数が数値の場合は直接変換し(小数点以下切り落とし)、文字列の場合は、進数を表す接頭辞を含む整数表現とみなせる文字列のみ変換します。

数値と文字列以外のオブジェクトに対しては arg.to_int, arg.to_i をこの順に使用して変換します。

[PARAM] arg:
変換対象のオブジェクトです。
[PARAM] base:
基数として0か2から36の整数を指定します(引数argに文字列を指定した場合のみ)。省略するか0を指定した場合はプリフィクスから基数を判断します。その場合に認識できるプリフィクスは、0b (2 進数)、0 (8 進数)、0o (8 進数)、0d (10 進数)、0x (16 進数) です。
[PARAM] exception:
false を指定すると、変換できなかった場合、例外を発生する代わりに nil を返します。
[EXCEPTION] ArgumentError:
整数と見なせない文字列を引数に指定した場合に発生します。
[EXCEPTION] TypeError:
メソッド to_int, to_i を持たないオブジェクトを引数に指定したか、to_int, to_i が整数(Integerのサブクラス)を返さなかった場合に発生します。
[EXCEPTION] TypeError:
引数に nil を指定した場合に発生します。


p Integer(4)          #=> 4
p Integer(4_000)      #=> 4000
p Integer(9.88)       #=> 9

p Integer(nil)        # can't convert nil into Integer (TypeError)
p Integer(Object.new) # cannot convert Object into Integer (TypeError)

p Integer("10")       #=> 10
p Integer("10", 2)    #=> 2
p Integer("0d10")     #=> 10
p Integer("010")      #=> 8
p Integer("0o10")     #=> 8
p Integer("0x10")     #=> 16
p Integer("0b10")     #=> 2
p Integer(" \n10\t ") #=> 10 # 先頭と末尾の空白類は無視される
p Integer("1\n0")     # `Integer': invalid value for Integer: "1\n0" (ArgumentError)
p Integer("hoge")     # `Integer': invalid value for Integer: "hoge" (ArgumentError)
p Integer("")         # `Integer': invalid value for Integer: "" (ArgumentError)

[SEE_ALSO] String#hex,String#oct,String#to_i,Integer