ゆるゆるプログラミング

・非数値 NaN

計算の結果が数値として表せないときに、その値をNaNと表現します。

具体的には、平方根を計算するMath.sqrtメソッドにマイナスの値を渡すとNaNが返ります。

以下のJavaのソースコードは、Math.sqrtメソッドに-1.0を渡して、その結果を表示するものです。

CalcError1.java
001:    public class CalcError1 {
002:    	public static void main( String[] args ) {
003:    		System.out.println( "-1.0の平方根=" + Math.sqrt( -1.0f ) );
004:    	}
005:    }

CalcError1の出力結果

-1.0の平方根=NaN

次のJavaのソースコードは、計算結果が非数値(NaN)かどうかを判定するメソッドを使ったサンプルです。

CalcError2.java
001:    public class CalcError2 {
002:    	public static void main( String[] args ) {
003:    		double a;
004:    
005:    		// -1.0の平行根を計算
006:    		a = Math.sqrt( -1.0f );
007:    
008:    		// aがNaNかどうか判定
009:    		if ( true == Double.isNaN( a ) )
010:    			System.out.println( "計算結果が無効です" );
011:    		else
012:    			System.out.println( a );
013:    	}
014:    }

CalcError2の出力結果

計算結果は無効です

以下が、非数値かどうか判定するメソッドです。

Double.NaNメソッド

public static boolean Double.isNaN( double a )
■引数aで指定した値が非数値(NaN)であるかを判定

  パラメータ a : double型の数値

  戻り値     NaNであればtrue、NaNでなければfalse

Float.NaNメソッド

public static boolean Float.isNaN( float a )
■引数aで指定した値が非数値(NaN)であるかを判定

  パラメータ a : float型の数値

  戻り値     NaNであればtrue、NaNでなければfalse

■関連コンテンツ

変数について Javaで扱う変数について解説
平方根 Math.sqrtの使い方について解説
無限大 Infinity 無限大(∞)について

■新着情報

2017.11.17 N値化 カラー画像をN値化する方法について解説
2017.11.16 最も近い値の取得 指定値に最も近い配列の値を取得する方法を解説
2017.10.02 アルファ値(透過) アルファ値(透過)について

■広告

法人向けのETC専用カード

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

Topへ