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

instance method Numeric#quo

quo(other) -> Rational | Float | Complex[permalink][rdoc]

self を other で割った商を返します。 整商を得たい場合は Numeric#div を使ってください。

Numeric#fdiv が結果を Float で返すメソッドなのに対して quo はなるべく正確な数値を返すことを意図しています。 具体的には有理数の範囲に収まる計算では Rational の値を返します。 FloatComplex が関わるときはそれらのクラスになります。

Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。

なお、割る数が 0 以外の整数の場合の挙動はバグのため Ruby2.1.0 以降では修正されています。詳しくはhttps://bugs.ruby-lang.org/issues/5515を参照して下さい。

[PARAM] other:
自身を割る数を指定します。
1.quo(3)      #=> (1/3)
1.0.quo(3)    #=> 0.3333333333333333
1.quo(3.0)    #=> (1/3)
              # 割る数が 0 以外の整数なら Float でも結果は Rational になる。
1.quo(0.5)    #=> 2.0

Complex(1, 1).quo(1)  #=> ((1/1)+(1/1)*i)
1.quo(Complex(1, 1))  #=> ((1/2)-(1/2)*i)

[SEE_ALSO] Numeric#fdiv