Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Integerクラス

class Integer

クラスの継承リスト: Integer < Numeric < Comparable < Object < Kernel < BasicObject
dynamic include: JSON::Generator::GeneratorMethods::Integer (by json)

要約

整数の抽象クラスです。サブクラスとして FixnumBignum が あります。この 2 種類の整数は値の大きさに応じてお互いに自動的に変換さ れます。ビット操作において整数は無限の長さのビットストリングとみなすこ とができます。

2.4.0 から Fixnum, Bignum は Integerに統合されました。 2.4.0 からはどちらも Integer クラスのエイリアスとなっています。

目次

インスタンスメソッド
ceil floor round to_i to_int truncate chr denominator downto even? gcd gcdlcm integer? lcm next succ numerator odd? ord pred rationalize times to_r to_s upto

インスタンスメソッド

to_i -> self[permalink][rdoc]
to_int -> self
floor -> self
ceil -> self
round -> self
truncate -> self

self を返します。

例:

10.to_i   # => 10

1.floor(2) # => 1.0 1.ceil(2) # => 1.0 1.round(2) # => 1.0 1.truncate(2) # => 1.0

chr -> String[permalink][rdoc]
chr(encoding) -> String

与えられたエンコーディング encoding において self を文字コードと見た時、それに対応する一文字からなる文字列を返します。 引数無しで呼ばれた場合は self を US-ASCII、ASCII-8BIT、デフォルト内部エンコーディングの順で優先的に解釈します。

p 65.chr # => "A"
p 0x79.chr.encoding # => #<Encoding:US_ASCII>
p 0x80.chr.encoding # => #<Encoding:ASCII_8BIT>
p 12354.chr Encoding::UTF_8 # => "あ"
p 12354.chr Encoding::EUC_JP
# => RangeError: invalid codepoint 0x3042 in EUC-JP
p 12354.chr Encoding::ASCII_8BIT
# => RangeError: 12354 out of char range
p (2**32).chr
# => RangeError: bignum out of char range
[PARAM] encoding:
エンコーディングを表すオブジェクト。Encoding::UTF_8、'shift_jis' など。
[RETURN]
一文字からなる文字列
[EXCEPTION] RangeError:
self を与えられたエンコーディングで正しく解釈できない場合に発生します。

[SEE_ALSO] String#ord

denominator -> Integer[permalink][rdoc]

分母(常に1)を返します。

[RETURN]
分母を返します。

例:

10.denominator    # => 1
-10.denominator   # => 1

[SEE_ALSO] Integer#numerator

downto(min) {|n| ... } -> self[permalink][rdoc]
downto(min) -> Enumerator

self から min まで 1 ずつ減らしながらブロックを繰り返し実行します。 self < min であれば何もしません。

[PARAM] min:
数値
[RETURN]
self を返します。

例:

5.downto(1) {|i| print i, " " } # => 5 4 3 2 1

[SEE_ALSO] Integer#upto, Numeric#step, Integer#times

even? -> bool[permalink][rdoc]

自身が偶数であれば真を返します。 そうでない場合は偽を返します。

例:

10.even?    # => true
5.even?     # => false
gcd(n) -> Integer[permalink][rdoc]

自身と整数 n の最大公約数を返します。

[EXCEPTION] ArgumentError:
n に整数以外のものを指定すると発生します。

例:

2.gcd(2)                    # => 2
3.gcd(7)                    # => 1
3.gcd(-7)                   # => 1
((1<<31)-1).gcd((1<<61)-1)  # => 1

また、self や n が 0 だった場合は、0 ではない方の整数の絶対値を返します。

3.gcd(0)                    # => 3
0.gcd(-7)                   # => 7

[SEE_ALSO] Integer#lcm, Integer#gcdlcm

gcdlcm(n) -> [Integer][permalink][rdoc]

自身と整数 n の最大公約数と最小公倍数の配列 [self.gcd(n), self.lcm(n)] を返します。

[EXCEPTION] ArgumentError:
n に整数以外のものを指定すると発生します。

例:

2.gcdlcm(2)                    # => [2, 2]
3.gcdlcm(-7)                   # => [1, 21]
((1<<31)-1).gcdlcm((1<<61)-1)  # => [1, 4951760154835678088235319297]

[SEE_ALSO] Integer#gcd, Integer#lcm

integer? -> true[permalink][rdoc]

常に真を返します。

例:

1.integer?     # => true
1.0.integer?   # => false
lcm(n) -> Integer[permalink][rdoc]

自身と整数 n の最小公倍数を返します。

[EXCEPTION] ArgumentError:
n に整数以外のものを指定すると発生します。

例:

2.lcm(2)                    # => 2
3.lcm(-7)                   # => 21
((1<<31)-1).lcm((1<<61)-1)  # => 4951760154835678088235319297

また、self や n が 0 だった場合は、0 を返します。

3.lcm(0)                    # => 0
0.lcm(-7)                   # => 0

[SEE_ALSO] Integer#gcd, Integer#gcdlcm

next -> Fixnum | Bignum[permalink][rdoc]
succ -> Fixnum | Bignum

self の次の整数を返します。

例:

1.next      #=> 2
(-1).next   #=> 0
1.succ      #=> 2
(-1).succ   #=> 0

[SEE_ALSO] Integer#pred

numerator -> Integer[permalink][rdoc]

分子(常に自身)を返します。

[RETURN]
分子を返します。

例:

10.numerator    # => 10
-10.numerator   # => -10

[SEE_ALSO] Integer#denominator

odd? -> bool[permalink][rdoc]

自身が奇数であれば真を返します。 そうでない場合は偽を返します。

例:

5.odd?     # => true
10.odd?    # => false
ord -> Integer[permalink][rdoc]

自身を返します。

10.ord    #=> 10
# String#ord
?a.ord    #=> 97

[SEE_ALSO] String#ord

pred -> Integer[permalink][rdoc]

self から -1 した値を返します。

1.pred      #=> 0
(-1).pred   #=> -2

[SEE_ALSO] Integer#next

rationalize -> Rational[permalink][rdoc]
rationalize(eps) -> Rational

自身を Rational に変換します。

[PARAM] eps:
許容する誤差

引数 eps は常に無視されます。

例:

2.rationalize      # => (2/1)
2.rationalize(100) # => (2/1)
2.rationalize(0.1) # => (2/1)
times {|n| ... } -> self[permalink][rdoc]
times -> Enumerator

self 回だけ繰り返します。 self が正の整数でない場合は何もしません。

またブロックパラメータには 0 から self - 1 までの数値が渡されます。

3.times { puts "Hello, World!" }  # Hello, World! と3行続いて表示される。
0.times { puts "Hello, World!" }  # 何も表示されない。
5.times {|n| print n }            # 01234 と表示される。

[SEE_ALSO] Integer#upto, Integer#downto, Numeric#step

to_r -> Rational[permalink][rdoc]

自身を Rational に変換します。

例:

1.to_r        # => (1/1)
(1<<64).to_r  # => (18446744073709551616/1)
to_s(base=10) -> String[permalink][rdoc]

整数を 10 進文字列表現に変換します。

引数を指定すれば、それを基数とした文字列表 現に変換します。

p 10.to_s(2)    # => "1010"
p 10.to_s(8)    # => "12"
p 10.to_s(16)   # => "a"
p 35.to_s(36)   # => "z"
[RETURN]
数値の文字列表現
[PARAM] base:
基数となる 2 - 36 の数値。
[EXCEPTION] ArgumentError:
base に 2 - 36 以外の数値を指定した場合に発生します。
upto(max) {|n| ... } -> Fixnum | Bignum[permalink][rdoc]
upto(max) -> Enumerator

self から max まで 1 ずつ増やしながら繰り返します。 self > max であれば何もしません。

[PARAM] max:
数値
[RETURN]
self を返します。

例:

5.upto(10) {|i| print i, " " } # => 5 6 7 8 9 10

[SEE_ALSO] Integer#downto, Numeric#step, Integer#times