【Ruby3.x】Float::finite?()メソッドの使い方
finite?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
finite?メソッドは、Floatオブジェクトが通常の数値、つまり無限大でも非数(NaN: Not a Number)でもない有限の値であるかどうかを判定するメソッドです。このメソッドは、呼び出し元のFloatオブジェクトが有限の数値であればtrueを返し、そうでなければfalseを返します。
「有限の値」とは、1.0や-3.14といった、私たちが普段扱うことのできる具体的な数値のことです。一方、浮動小数点数には、Float::INFINITYで表される正の無限大や負の無限大、そしてFloat::NANで表される非数(NaN)といった特殊な値が存在します。これらの特殊な値は、特定の数値計算で結果が定義不能になった場合などに発生します。
例えば、1.0.finite?はtrueを返しますが、Float::INFINITY.finite?やFloat::NAN.finite?はfalseを返します。このメソッドは、数値計算の結果が期待通りの有限の値であるかを確認し、無限大や非数といった異常値が混入していないかをチェックする際に非常に有用です。特に、システムにおける数値処理の堅牢性を高めるため、計算結果を次の処理に渡す前に値の妥当性を検証する場面で役立ちます。
構文(syntax)
1puts 123.45.finite? 2puts Float::INFINITY.finite? 3puts Float::NAN.finite?
引数(parameters)
引数なし
引数はありません
戻り値(return)
Boolean
Floatクラスのfinite?メソッドは、そのFloat値が有限な数値である場合にtrueを、無限大またはNaN(非数)である場合にfalseを返します。