【Ruby3.x】Float::nan?()メソッドの使い方
nan?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
nan?メソッドは、レシーバであるFloatオブジェクトが非数(NaN: Not a Number)であるかどうかを判定するメソッドです。
非数(NaN)とは、浮動小数点数演算において、数学的に定義できない結果や表現できない値を表す特別な状態です。例えば、0.0を0.0で割るような演算や、負の数の平方根を計算しようとした場合などに発生します。通常の数値や無限大(Infinity)とは異なる特殊な値として扱われます。
このメソッドは、レシーバがNaNである場合にtrueを返し、有限な数値や無限大(Float::INFINITYなど)である場合にはfalseを返します。
浮動小数点数におけるNaNは、同じNaN自身との比較も含め、他のいかなる値とも等しくないと判断される特性があります(NaN == NaNの結果もfalseになります)。そのため、==演算子を使ってNaNを判定することはできません。計算結果がNaNになっていないかを確認するには、このnan?メソッドを用いることが適切で、不可欠な方法となります。
複雑な数値計算を行うプログラムでは、予期せぬNaNの発生を防ぎ、計算の信頼性を確保するために、このnan?メソッドによるチェックが役立ちます。
構文(syntax)
1(0.0 / 0.0).nan?
引数(parameters)
引数なし
引数はありません
戻り値(return)
Boolean
Floatクラスのnan?メソッドは、レシーバーであるFloatオブジェクトが「非数」(Not-a-Number)である場合にtrueを、そうでない場合にfalseを返します。