このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 3.1 リファレンスマニュアル

instance method Rational#**

self ** other -> Rational | Float[permalink][rdoc][edit]

冪(べき)乗を計算します。

[PARAM] other:
selfother 乗する数

otherFloat を指定した場合は、計算結果を Float で返します。 other が有理数であっても、計算結果が無理数だった場合は Float を返します。

r = Rational(3, 4)
p r ** Rational(2, 1)  # => (9/16)
p r ** 2             # => (9/16)
p r ** 2.0           # => 0.5625
p r ** Rational(1, 2)  # => 0.8660254037844386

計算結果の分母・分子が巨大になりすぎるとき、警告を出したうえで Float::INFINITY(基数によっては Float::NAN)を返します。

計算を放棄して Float::INFINITY を返す例
p Rational(2) ** 100000000
# => warning: in a**b, b may be too big
#    Infinity

判定の閾値は変わりえます。