Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Numericクラス > quo
quo(other) -> Rational | Float | Complex
[permalink][rdoc]self を other で割った商を返します。 整商を得たい場合は Numeric#div を使ってください。
Numeric#fdiv が結果を Float で返すメソッドなのに対して quo はなるべく正確な数値を返すことを意図しています。 具体的には有理数の範囲に収まる計算では Rational の値を返します。 Float や Complex が関わるときはそれらのクラスになります。
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
なお、割る数が 0 以外の整数の場合の挙動はバグのため Ruby2.1.0 以降では修正されています。詳しくはhttps://bugs.ruby-lang.org/issues/5515を参照して下さい。
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