class Fixnum + Integer + Numeric + Comparable
クラスの継承リスト: Fixnum < Integer < Numeric < Comparable < Object < Kernel < BasicObject
要約
Bignum 同様、整数のクラスです。 演算の結果が Fixnum の範囲を越えた時には 自動的に Bignum に拡張されます。
マシンのポインタのサイズに収まる長さの固定長整数で、 ほとんどのマシンでは 31 ビット幅です。
破壊的な変更
Ruby の Fixnum クラスは immutable です。 つまり、オブジェクト自体を破壊的に変更することはできません。 Bignum も同様です。
例:
p 100000.class # => Fixnum p 100000 * 100000 # => 100000000 p (100000 * 100000).class # => Bignum
インスタンスメソッド
self % other -> Fixnum | Bignum | Float
-
算術演算子。剰余を計算します。
- [PARAM] other:
- 二項演算の右側の引数(対象)
- [RETURN]
- 計算結果
self & other -> Fixnum | Bignum
-
ビット二項演算子。論理積を計算します。
- [PARAM] other:
- 数値
1 & 1 #=> 1 2 & 3 #=> 2
self * other -> Fixnum | Bignum | Float
-
算術演算子。積を計算します。
- [PARAM] other:
- 二項演算の右側の引数(対象)
- [RETURN]
- 計算結果
self ** other -> Fixnum | Bignum | Float
-
算術演算子。冪(べき乗)を計算します。
- [PARAM] other:
- 二項演算の右側の引数(対象)
- [RETURN]
- 計算結果
p 2 ** 3 # => 8 p 2 ** 0 # => 1 p 0 ** 0 # => 1
self ** other -> Integer | Float | Rational
[redefined by rational]rpower(other) -> Integer | Float | Rational
[redefined by rational]-
冪(べき)乗を計算します。other が 0 以下の場合、計算結果を Rational オブジェクトで返します。
- [PARAM] other:
- 自身を other 乗する数
2.rpower(3) # => 8 2.rpower(-3) # => Rational(1, 8)
self + other -> Fixnum | Bignum | Float
-
算術演算子。和を計算します。
- [PARAM] other:
- 二項演算の右側の引数(対象)
- [RETURN]
- 計算結果
+ -> self
-
単項演算子の + です。 self を返します。
self - other -> Fixnum | Bignum | Float
-
算術演算子。差を計算します。
- [PARAM] other:
- 二項演算の右側の引数(対象)
- [RETURN]
- 計算結果
- -> Numeric
-
単項演算子の - です。 self の符号を反転させたものを返します。
このメソッドは、二項演算子 - で 0 - self によって定義されています。
self / other -> Fixnum | Bignum | Float
-
算術演算子。商を計算します。
- [PARAM] other:
- 二項演算の右側の引数(対象)
- [RETURN]
- 計算結果
self / other
[redefined by mathn]-
[TODO]
Fixnum#quo と同じ働きをします(有理数または整数を返します)。
self < other -> bool
-
比較演算子。数値として小さいか判定します。
- [PARAM] other:
- 比較対象の数値
- [RETURN]
- self よりも other が大きい場合 true を返します。 そうでなければ false を返します。
self < other -> bool
-
比較演算子 <=> をもとにオブジェクト同士を比較します。 <=> が負の整数を返した場合に、true を返します。 それ以外の整数を返した場合に、false を返します。
- [PARAM] other:
- 自身と比較したいオブジェクトを指定します。
- [EXCEPTION] ArgumentError:
- <=> が nil を返したときに発生します。
self << bits -> Fixnum | Bignum
-
シフト演算子。bits だけビットを左にシフトします。
- [PARAM] bits:
- シフトさせるビット数
printf("%#b\n", 0b0101 << 1) #=> 0b1010 p -1 << 1 #=> -2
self <= other -> bool
-
比較演算子。数値として等しいまたは小さいか判定します。
- [PARAM] other:
- 比較対象の数値
- [RETURN]
- self よりも other の方が大きい場合か、 両者が等しい場合 true を返します。 そうでなければ false を返します。
self <= other -> bool
-
比較演算子 <=> をもとにオブジェクト同士を比較します。 <=> が負の整数か 0 を返した場合に、true を返します。 それ以外の整数を返した場合に、false を返します。
- [PARAM] other:
- 自身と比較したいオブジェクトを指定します。
- [EXCEPTION] ArgumentError:
- <=> が nil を返したときに発生します。
self <=> other -> Fixnum
-
self と other を比較して、self が大きい時に正、 等しい時に 0、小さい時に負の整数を返します。
- [PARAM] other:
- 比較対象の数値
- [RETURN]
- -1 か 0 か 1 のいずれか
1 <=> 2 #=> -1 1 <=> 1 #=> 0 2 <=> 1 #=> 1
self <=> other -> -1 | 0 | 1 | nil
-
自身が other より大きい場合に 1 を、等しい場合に 0 を、小さい場合には -1 をそれぞれ返します。 自身と other が比較できない場合には nil を返します。
Numeric のサブクラスは、上の動作を満たすよう このメソッドを適切に再定義しなければなりません。
- [PARAM] other:
- 自身と比較したい数値を指定します。
1 <=> 0 #=> 1 1 <=> 1 #=> 0 1 <=> 2 #=> -1 1 <=> "0" #=> nil
self == other -> bool
-
比較演算子。数値として等しいか判定します。
- [PARAM] other:
- 比較対象の数値
- [RETURN]
- self と other が等しい場合 true を返します。 そうでなければ false を返します。
self == other -> bool | nil
-
比較演算子 <=> をもとにオブジェクト同士を比較します。 <=> が 0 を返した時に、true を返します。 それ以外を返した場合は、false を返します。
- [PARAM] other:
- 自身と比較したいオブジェクトを指定します。
self > other -> bool
-
比較演算子。数値として大きいか判定します。
- [PARAM] other:
- 比較対象の数値
- [RETURN]
- self よりも other の方が小さい場合 true を返します。 そうでなければ false を返します。
self > other -> bool
-
比較演算子 <=> をもとにオブジェクト同士を比較します。 <=> が正の整数を返した場合に、true を返します。 それ以外の整数を返した場合に、false を返します。
- [PARAM] other:
- 自身と比較したいオブジェクトを指定します。
- [EXCEPTION] ArgumentError:
- <=> が nil を返したときに発生します。
self >= other -> bool
-
比較演算子。数値として等しいまたは大きいか判定します。
- [PARAM] other:
- 比較対象の数値
- [RETURN]
- self よりも other の方が小さい場合か、 両者が等しい場合 true を返します。 そうでなければ false を返します。
self >= other -> bool
-
比較演算子 <=> をもとにオブジェクト同士を比較します。 <=> が正の整数か 0 を返した場合に、true を返します。 それ以外の整数を返した場合に、false を返します。
- [PARAM] other:
- 自身と比較したいオブジェクトを指定します。
- [EXCEPTION] ArgumentError:
- <=> が nil を返したときに発生します。
self >> bits -> Fixnum | Bignum
-
シフト演算子。bits だけビットを右にシフトします。
右シフトは、符号ビット(最上位ビット(MSB))が保持されます。 bitsが実数の場合、小数点以下を切り捨てた値でシフトします。
- [PARAM] bits:
- シフトさせるビット数
printf("%#b\n", 0b0101 >> 1) #=> 0b10 p -1 >> 1 #=> -1
self[nth] -> Fixnum
-
nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1 を、そうでなければ 0 を返します。
- [PARAM] nth:
- 何ビット目を指すかの数値
- [RETURN]
- 1 か 0
self[nth]=bit (つまりビットの修正) がないのは、Numeric 関連クラスが immutable であるためです。
self ^ other -> Fixnum | Bignum
-
ビット二項演算子。排他的論理和を計算します。
- [PARAM] other:
- 数値
1 ^ 1 #=> 0 2 ^ 3 #=> 1
abs -> Numeric
-
自身が 0 以上ならば self を、そうでない場合は -self を返します。
abs2 -> Numeric
-
自身の絶対値の 2 乗を返します。
例:
2.abs2 # => 4 -2.abs2 # => 4 2.0.abs2 # => 4 -2.0.abs2 # => 4
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
arg -> 0 | Math::PI
angle -> 0 | Math::PI
phase -> 0 | Math::PI
-
自身の偏角(正の数なら 0、負の数なら Math::PI)を返します。
例:
1.arg # => 0 -1.arg # => 3.141592653589793
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
between?(min, max) -> bool
-
比較演算子 <=> をもとに self が min と max の範囲内(min, max を含みます)にあるかを判断します。
以下のコードと同じです。
self >= min and self <= max
- [PARAM] min:
- 範囲の下端を表すオブジェクトを指定します。
- [PARAM] max:
- 範囲の上端を表すオブジェクトを指定します。
- [EXCEPTION] ArgumentError:
- self <=> min か、self <=> max が nil を返 したときに発生します。
3.between?(1, 5) #=> true 6.between?(1, 5) #=> false 'cat'.between?('ant', 'dog') #=> true 'gnu'.between?('ant', 'dog') #=> false
ceil -> Integer
-
自身と等しいかより大きな整数のうち最小のものを返します。
1.ceil #=> 1 1.2.ceil #=> 2 (-1.2).ceil #=> -1 (-1.5).ceil #=> -1
[SEE_ALSO] Numeric#floor, Numeric#round, Numeric#truncate
chr -> String
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
coerce(other) -> [Numeric]
-
自身と other が同じクラスになるよう、自身か other を変換し [other, self] という配列にして返します。
デフォルトでは self と other を Float に変換して [other, self] という配列にして返します。 Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。 以下は Rational の coerce のソースです。other が自身の知らない数値クラスであった場合、 super を呼んでいることに注意して下さい。
# lib/rational.rb より def coerce(other) if other.kind_of?(Float) return other, self.to_f elsif other.kind_of?(Integer) return Rational.new!(other, 1), self else super end end
数値クラスの算術演算子は通常自分と演算できないクラスをオペランドとして受け 取ると coerce を使って自分とオペランドを変換した上で演算を行います。 以下は Rational の + メソッドを一部省略したものです。 引数が自身の知らない数値クラスである場合、引数の coerce により自身を変換してから + 演算子を呼んでいます。
# lib/rational.rb より def + (a) if a.kind_of?(Rational) # 長いので省略 elsif a.kind_of?(Integer) # 長いので省略 elsif a.kind_of?(Float) Float(self) + a else x, y = a.coerce(self) x + y end end
- [PARAM] other:
- オペランドを数値で指定します。
conj -> Numeric
conjugate -> Numeric
-
自身の共役複素数(実数の場合は常に自身)を返します。
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
[SEE_ALSO] Complex#conj
denominator -> Integer
-
分母(常に1)を返します。
- [RETURN]
- 分母を返します。
[SEE_ALSO] Integer#numerator
denominator -> Integer
-
自身を Rational に変換した時の分母を返します。
- [RETURN]
- 分母を返します。
[SEE_ALSO] Numeric#numerator
div(other) -> Integer
-
self を other で割った整数の商 q を返します。
ここで、商 q と余り r は、それぞれ
- self == other * q + r
と
- other > 0 のとき: 0 <= r < other
- other < 0 のとき: other < r <= 0
- q は整数
をみたす数です。 商に対応する余りは Numeric#modulo で求められます。 div はメソッド / の呼び出しとして定義されています。
- [PARAM] other:
- 自身を割る数を指定します。
p 3.div(2) # => 1 p (-3).div(2) # => -2 p (-3.0).div(2) # => -2
divmod(other) -> [Numeric]
-
self を other で割った商 q と余り r を、 [q, r] という 2 要素の配列にして返します。 商 q は常に整数ですが、余り r は整数であるとは限りません。
ここで、商 q と余り r は、
- self == other * q + r
と
- other > 0 のとき: 0 <= r < other
- other < 0 のとき: other < r <= 0
- q は整数
をみたす数です。 divmod が返す商は Numeric#div と同じです。 また余りは、Numeric#modulo と同じです。 このメソッドは、メソッド / と % によって定義されています。
- [PARAM] other:
- 自身を割る数を指定します。
11.divmod(3) #=> [3, 2] (11.5).divmod(3.5) #=> [3, 1.0] 11.divmod(-3) #=> [-4, -1] 11.divmod(3.5) #=> [3, 0.5] (-11).divmod(3.5) #=> [-4, 3.0]
[SEE_ALSO] Numeric#div, Numeric#modulo
downto(min) {|n| ... } -> self
downto(min) -> Enumerator
-
self から min まで 1 ずつ減らしながらブロックを繰り返し実行します。 self < min であれば何もしません。
- [PARAM] min:
- 数値
- [RETURN]
- self を返します。
[SEE_ALSO] Integer#upto, Numeric#step, Integer#times
eql?(other) -> bool
-
自身と other のクラスが等しくかつ == メソッドで比較して等しい場合に true を返します。 そうでない場合に false を返します。
Numeric のサブクラスは、eql? で比較して等しい数値同士が同じハッシュ値を返すように hash メソッドを適切に定義する必要があります。
- [PARAM] other:
- 自身と比較したい数値を指定します。
p 1.eql?(1) #=> true p 1.eql?(1.0) #=> false p 1 == 1.0 #=> true
[SEE_ALSO] Object#equal?, Object#eql?, Object#==, Object#===
even? -> bool
-
自身が偶数であれば真を返します。 そうでない場合は偽を返します。
quo(other) -> Float
fdiv(other) -> Float
-
self を other で割った実数の商を返します。
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
- [PARAM] other:
- 自身を割る数を指定します。
p 1.quo(3) # => 0.3333333333333333 require 'rational' p 1.quo(3) # => Rational(1, 3)
floor -> Integer
-
自身と等しいかより小さな整数のうち最大のものを返します。
1.floor #=> 1 1.2.floor #=> 1 (-1.2).floor #=> -2 (-1.5).floor #=> -2
[SEE_ALSO] Numeric#ceil, Numeric#round, Numeric#truncate
gcd(n) -> Integer
-
自身と整数 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]
-
自身と整数 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
i -> Complex
-
Complex(0, self) を返します。
ただし、Complex オブジェクトでは利用できません。
例:
10.i # => (0+10i) -10.i # => (0-10i) (0.1).i # => (0+0.1i) Rational(1, 2).i # => (0+(1/2)*i)
id2name -> String | nil
-
オブジェクトの整数値 self を、ある Symbol オブジェクトに対応する整数値とみなした上で、 そのシンボルを示す文字列を返します。 整数に対応するシンボルは必ずしも存在せず、その場合は nil を返します。
- [RETURN]
- オブジェクト名を示す文字列か nil
例:
:foo.to_i #=> 14585 14585.id2name #=> "foo" 1.id2name #=> nil
Fixnum#to_sym で得たシンボルに対して Symbol#to_s で文字列にしたものとおおかた一致しますが、 nil のときの挙動が異なります。
例:
1.id2name #=> nil 1.to_sym.to_s #=> ""
imag -> 0
imaginary -> 0
-
常に 0 を返します。
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
[SEE_ALSO] Numeric#real、Complex#imag
integer? -> true
-
常に真を返します。
integer? -> bool
-
self が整数の時、真を返します。そうでない場合に false を返します。
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
lcm(n) -> Integer
-
自身と整数 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
modulo(other) -> Numeric
-
self を other で割った余り r を返します。
ここで、商 q と余り r は、
- self == other * q + r
と
- other > 0 のとき 0 <= r < other
- other < 0 のとき other < r <= 0
- q は整数
をみたす数です。 余り r は、other と同じ符号になります。 商 q は、Numeric#div (あるいは 「/」)で求められます。 modulo はメソッド % の呼び出しとして定義されています。
- [PARAM] other:
- 自身を割る数を指定します。
p 13.modulo(4) #=> 1 p (11.5).modulo(3.5) #=> 1.0 p 13.modulo(-4) #=> -3 p (-13).modulo(4) #=> 3 p (-13).modulo(-4) #=> -1 p (-11).modulo(3.5) #=> 3.0
[SEE_ALSO] Numeric#divmod, Numeric#remainder
next -> Fixnum | Bignum
succ -> Fixnum | Bignum
-
self の次の整数を返します。
nonzero? -> self | nil
-
自身がゼロの時 nil を返し、非ゼロの時 self を返します。
p 10.nonzero? #=> 10 p 0.nonzero? #=> nil p 0.0.nonzero? #=> nil require 'rational' p Rational(0, 2).nonzero? #=> nil
numerator -> Integer
-
分子(常に自身)を返します。
- [RETURN]
- 分子を返します。
[SEE_ALSO] Integer#denominator
numerator -> Integer
-
自身を Rational に変換した時の分子を返します。
- [RETURN]
- 分子を返します。
[SEE_ALSO] Numeric#denominator
odd? -> bool
-
自身が奇数であれば真を返します。 そうでない場合は偽を返します。
ord -> Integer
-
自身を返します。
10.ord #=> 10 # String#ord ?a.ord #=> 97
[SEE_ALSO] String#ord
polar -> [Numeric, Numeric]
-
自身の絶対値と偏角を配列にして返します。正の数なら [self, 0]、負の数な ら [-self, Math::PI] を返します。
例:
1.0.polar # => [1.0, 0] 2.0.polar # => [2.0, 0] -1.0.polar # => [1.0, 3.141592653589793] -2.0.polar # => [2.0, 3.141592653589793]
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
pred -> Integer
-
self から -1 した値を返します。
1.pred #=> 0 (-1).pred #=> -2
quo(other) -> Rational
[redefined by rational]-
商を計算して計算結果を Rational オブジェクトで返します。
- [PARAM] other:
- 自身を割る数
例:
1.quo(2) # => Rational(1,2)
rationalize -> Rational
rationalize(eps) -> Rational
-
自身を Rational に変換します。
- [PARAM] eps:
- 許容する誤差
引数 eps は常に無視されます。
例:
2.rationalize # => (2/1) 2.rationalize(100) # => (2/1) 2.rationalize(0.1) # => (2/1)
real -> Numeric
-
自身を返します。
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
[SEE_ALSO] Numeric#imag、Complex#real
real? -> bool
-
自身が Complex かそのサブクラスのインスタンスでない場合に true を返します。そうでない場合に false を返します。
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
rect -> [Numeric, Numeric]
rectangular -> [Numeric, Numeric]
-
[self, 0] を返します。
例:
1.rect # => [1, 0] -1.rect # => [-1, 0] 1.0.rect # => [1.0, 0] -1.0.rect # => [-1.0, 0]
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
remainder(other) -> Numeric
-
self を other で割った余り r を返します。
ここで、商 q と余り r は、
- self == other * q + r
と
- self > 0 のとき 0 <= r < |other|
- self < 0 のとき -|other| < r <= 0
- q は整数
をみたす数です。r の符号は self と同じになります。 商 q を直接返すメソッドはありません。self.quo(other).truncate がそれに相当します。
- [PARAM] other:
- 自身を割る数を指定します。
p 13.remainder(4) #=> 1 p (11.5).remainder(3.5) #=> 1.0 p 13.remainder(-4) #=> 1 p (-13).remainder(4) #=> -1 p (-13).remainder(-4) #=> -1 p (-11).remainder(3.5) #=> -0.5
[SEE_ALSO] Numeric#divmod, Numeric#modulo
round -> Integer
-
自身ともっとも近い整数を返します。
中央値 0.5, -0.5 はそれぞれ 1,-1 に切り上げされます。いわゆる四捨五入ですが、偶数丸めではありません。
1.round #=> 1 1.2.round #=> 1 (-1.2).round #=> -1 (-1.5).round #=> -2
[SEE_ALSO] Numeric#ceil, Numeric#floor, Numeric#truncate
size -> Fixnum
-
整数の実装上のサイズをバイト数で返します。
現在の実装では Fixnum は、sizeof(long) 固定(多くの 32 bit マシンで 4 バイト)、Bignumは、システム依存です。
p 1.size p 0x1_0000_0000.size # => 4 8
step(limit, step = 1) {|n| ... } -> self
step(limit, step = 1) -> Enumerator
-
self からはじめ step を足しながら limit を越える 前までブロックを繰り返します。step は負の数も指定できます。また、limit や step には Float なども 指定できます。
- [PARAM] limit:
- ループの上限あるいは下限を数値で指定します。step に負の数が指定された場合は、 下限として解釈されます。
- [PARAM] step:
- 各ステップの大きさを数値で指定します。負の数を指定することもできます。
- [EXCEPTION] ArgumentError:
- step に 0 を指定した場合に発生します。
2.step(5){|n| p n} 2 3 4 5 1.1.step(1.5, 0.1) {|n| p n} => 1.1 1.2 1.3 1.4 1.5 10.step(6, -1){|n| p n} 10 9 8 7 6
注:浮動小数点数の 0.1 は 2進数では正確な表現ができない(2進数で 0.1は 0.00011001100....となる)ので、以下のようなループでは誤差が 生じて意図した回数ループしないことがある。step はこの誤差を考慮し て実装されている。
i = 1.1 while i <= 1.5 p i i += 0.1 end => 1.1 1.2 1.3 1.4 <- 1.5 が表示されない
[SEE_ALSO] Integer#downto
times {|n| ... } -> self
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_c -> Complex
-
自身を複素数 (Complex) に変換します。Complex(self, 0) を返します。
例:
1.to_c # => (1+0i) -1.to_c # => (-1+0i) 1.0.to_c # => (1.0+0i) Rational(1, 2).to_c # => ((1/2)+0i)
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
to_f -> Float
-
値を浮動小数点数(Float)に変換します。
to_i -> self
to_int -> self
-
self を返します。
to_int -> Integer
-
self.to_i と同じです。
to_r -> Rational
-
自身を Rational に変換します。
例:
1.to_r # => (1/1) (1<<64).to_r # => (18446744073709551616/1)
to_s -> String
to_s(base) -> String
-
整数を 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 以外の数値を指定した場合に発生します。
to_sym -> Symbol | nil
-
オブジェクトの整数値 self に対応する Symbol オブジェク トを返します。整数に対応するシンボルが存在しない時には nil を返します。
- [RETURN]
- シンボルか nil
例:
:foo.to_i #=> 14585 14585.to_sym #=> :foo 1.to_sym #=> nil
truncate -> Integer
-
自身と 0 との間にある整数で、自身にもっとも近い整数を返します。
1.truncate #=> 1 1.2.truncate #=> 1 (-1.2).truncate #=> -1 (-1.5).truncate #=> -1
[SEE_ALSO] Numeric#ceil, Numeric#floor, Numeric#round
upto(max) {|n| ... } -> Fixnum | Bignum
upto(max) -> Enumerator
-
self から max まで 1 ずつ増やしながら繰り返します。 self > max であれば何もしません。
- [PARAM] max:
- 数値
- [RETURN]
- self を返します。
[SEE_ALSO] Integer#downto, Numeric#step, Integer#times
zero? -> bool
-
自身がゼロの時、真を返します。そうでない場合は false を返します。
p 10.zero? #=> false p 0.zero? #=> true p 0.0.zero? #=> true
self | other -> Fixnum | Bignum
-
ビット二項演算子。論理和を計算します。
- [PARAM] other:
- 数値
1 | 1 #=> 1 2 | 3 #=> 3
~ -> Fixnum | Bignum
-
ビット演算子。否定を計算します。
~1 #=> -2 ~3 #=> -4 ~-4 #=> 3