Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > rationalライブラリ > Kernelモジュール > Rational

module function Kernel.#Rational

Rational(num, den = 1) -> Rational | Integer[permalink][rdoc] [added by rational]

Rational オブジェクトを生成します。

[PARAM] num:
分子を指定します。
[PARAM] den:
分母を指定します。省略した場合は 1 です。
[EXCEPTION] ZeroDivisionError:
den に 0 を指定した場合に発生します。

引数 num、den の両方を指定した場合、num/den を既約になるまで約分した Rational オブジェクトを返します。

num と den には整数を指定します。den が 1 の時に限り、num に Rational オブジェクトを指定する事もできます。

例:

Rational(1, 3)              # => Rational(1, 3)
Rational(2, 6)              # => Rational(1, 3)
Rational(Rational(1, 3), 1) # => Rational(1, 3)

それ以外のオブジェクトを指定すると例外が発生します。

Rational(Rational(1, 3), 2) # => NoMethodError
Rational(1.1, 2.3)          # => NoMethodError
Rational("1/3")             # => NoMethodError
Rational(nil)               # => NoMethodError

mathn を require 済みの場合は約分して整数になる値を指定すると Integer を返します。

Rational(4, 2)              # => Rational(2, 1)
require "mathn"
Rational(4, 2)              # => 2

約分していない Rational オブジェクトを作成する場合は Rational.new! を使用します。ただし、1.9 以降では使用できない事に 注意してください。

[SEE_ALSO] Rational.new!, Rational.reduce, mathn