Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > rationalライブラリ > Rationalクラス
class Rational
クラスの継承リスト: Rational < Numeric < Comparable < Object < Kernel < BasicObject
Abstract
Integer < Rational < Float の順に強いです。つまり other が Float なら、 self を Float に変換してから演算子を適用します。other が Integer なら other を Rational に変換してから演算子を適用します。冪乗は例外です。
特異メソッド
new!(num, den = 1)
-
Implements the constructor. This method does not reduce to lowest terms or check for division by zero. Therefore #Rational() should be preferred in normal use.
puts Rational.new!(6,10) #=> 6/10
reduce(num, den = 1)
-
Reduces the given numerator and denominator to their lowest terms. Use Rational() instead.
インスタンスメソッド
self % other
-
剰余を計算します。絶対値が self の絶対値を越えない、符号が self と同じ Numeric を返します。
Rational(3, 4) % 2 # => Rational(3, 4) Rational(3, 4) % Rational(2, 1) # => Rational(3, 4) Rational(3, 4) % 2.0 # => 0.75
self * other
-
積を計算します。
r = Rational(3,4) # -> Rational(3,4) r * 2 # -> Rational(3,2) r * 4 # -> Rational(3,1) r * 0.5 # -> 0.375 r * Rational(1,2) # -> Rational(3,8)
self ** other
-
冪を計算します。
Rational(3, 4) ** 2 # => Rational(9, 16) Rational(3, 4) ** Rational(2, 1) # => 0.5625 Rational(3, 4) ** 2.0 # => 0.5625
self **
[redefined by mathn]-
self のべき乗を返します。 Rational になるようであれば Rational で返します。
self + other
-
和を計算します。
Rational(3, 4) + 2 # => Rational(11, 4) Rational(3, 4) + Rational(2, 1) # => Rational(11, 4) Rational(3, 4) + 2.0 # => 2.75
self - other
-
差を計算します。
self / other
-
商を計算します。 other が 0 の時は、例外 ZeroDivisionError を投げます。
Rational(3, 4) / 2 # => Rational(3, 8) Rational(3, 4) / Rational(2, 1) # => Rational(3, 8) Rational(3, 4) / 2.0 # => 0.375
self <=> other
-
other と比べて self が大きいなら 1、同じなら 0、小さいなら -1 を返します。
abs
-
self が正なら self、負なら -1 * self を返します。
denominator
-
分母を Fixnum として返します。
divmod(other)
-
self を other で割った、商と余りの配列を返します。 商は Fixnum、余りは絶対値が other の絶対値を越えず、符号が other と同じ Numeric です。Numeric#divmod も参照して下さい。
Rational(3,4).divmod(Rational(2,3)) # => [1, Rational(1, 12)] Rational(-3,4).divmod(Rational(2,3)) # => [-2, Rational(7, 12)] Rational(3,4).divmod(Rational(-2,3)) # => [-2, Rational(-7, 12)] Rational(9,4).divmod(2) # => [1, Rational(1, 4)] Rational(9,4).divmod(Rational(2, 1)) # => [1, Rational(1, 4)] Rational(9,4).divmod(2.0) # => [1, 0.25]
inspect
[redefined by mathn]-
「3/5」などの形で返します。
numerator
-
分子を Fixnum として返します。
power2
[redefined by mathn]-
作りかけ(^^;;
to_f
-
Float に変換します。
to_i
-
Fixnum に変換します。
to_s
-
文字列に変換します。
Rational(-3,4).to_s # => "-3/4"
追加されるメソッド
Unify
[added by mathn]to_d(nFig = 0)
[added by bigdecimal/util]-
BigDecimalに変換する