Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Integerクラス > sqrt

singleton method Integer.sqrt

sqrt(n) -> Integer[permalink][rdoc]

非負整数 n の整数の平方根を返します。すなわち n の平方根以下の 最大の非負整数を返します。

[PARAM] n:
非負整数。Integer ではない場合は、最初に Integer に変換されます。
[EXCEPTION] Math::DomainError:
n が負の整数の時に発生します。

Integer.sqrt(0)        # => 0
Integer.sqrt(1)        # => 1
Integer.sqrt(24)       # => 4
Integer.sqrt(25)       # => 5
Integer.sqrt(10**400) == 10**200 # => true

Math.sqrt(n).floor と同等ですが、後者は浮動小数点数の精度の限界によって 真の値とは違う結果になることがあります。


Integer.sqrt(10**46)     #=> 100000000000000000000000
Math.sqrt(10**46).floor  #=>  99999999999999991611392 (!)

[SEE_ALSO] Math.sqrt