logo

Java の NaN (非数)

Java での意味は、 NaN 数字ではありません そしてそれは中に存在します java.lang.Double そして java.lang.Float クラス。未定義の数値を表す特別な値です。数学的計算では、結果が未定義の NAN に遭遇することがあります。

  • 負の Math.sqrt(-1) の平方根を計算しようとすると、負の数の平方根は定義されていないため、NaN が返されます。
  • ゼロをゼロで除算しようとすると、NaN も返されます。

例:

Java
// Java Program to demonstrates NAN // Define a class public class Geeks {  // main method  public static void main(String[] args)  {  System.out.println(2.0 % 0.0);  System.out.println(0.0 / 0.0);  System.out.println(Math.sqrt(-1));  } } 

出力
NaN NaN NaN 

時々 数学 それが NaN が存在する理由です。 Java は、エラーをスローする代わりに、単に NaN を返して、何かが間違っていることを示します。



NaN を作成するには?

の助けを借りて ダブル または フロート NAN を作成できるクラス。

CSVファイルをJavaから読み込む

double n = Double.NaN; // Double を使用する

Java文字列.形式

float n = Float.NaN; // Float を使用する

NaN 値を比較するにはどうすればよいですか?

NaN は順序付けされていないため、NaN と比較すると false が返されます。 NaN を別の NaN と比較する場合、または関係演算子を使用する場合、結果は常に false になります。次に、NaN がさまざまなシーンでどのように機能するかについて説明します。

1. 関係演算子と NaN

  • 数値比較演算子< <= >>= は、どちらかまたは両方のオペランドが NaN の場合、常に false を返します。
  • いずれかのオペランドが NaN の場合、等価演算子 == は false を返します。
  • いずれかのオペランドが NaN の場合、不等演算子 != は true を返します。

例:

Java
// Java program to test relational operator on NaN public class Geeks {  public static void main(String[] args)  {  // comparing NaN constant field defined in  // Float Class  System.out.print('Check if equal :');  System.out.println(Float.NaN == Float.NaN);    System.out.print('Check if unequal: ');  System.out.println(Float.NaN != Float.NaN);  // comparing NaN constant field defined in Double Class  System.out.print('Check if equal: ');  System.out.println(Double.NaN == Double.NaN);    System.out.print('Check if unequal: ');  System.out.println(Double.NaN != Double.NaN);  // More Examples  double NaN = 2.1 % 0;  System.out.println((2.1%0) == NaN);  System.out.println(NaN == NaN);  } } 

出力
Check if equal :false Check if unequal: true Check if equal: false Check if unequal: true false false 


2.isnN()ブラザーズ

このメソッドは、値が NaN であるかどうかを確認するために使用されます。

文字列をint Javaに変換する

例:

Java
// Demonstrating isNaN() import java.lang.*; // Created a class public class Geeks {  // main method  public static void main(String[] args)  {  Double x = new Double(-2.0/0.0);  Double y = new Double(0.0/0.0);      // returns false if this Double value is not a Not-a-Number (NaN)   System.out.println(y + ' = ' + y.isNaN());    // returns true if this Double value is a Not-a-Number (NaN)   System.out.println(x + ' = ' + x.isNaN());    } }  

出力
NaN = true -Infinity = false 


3. 浮動小数点型は数学的値の操作中に例外を生成しません

NaN が続きます IEEE 754 浮動小数点 標準。 IEEE 754 浮動小数点数は、正または負の無限大および NaN を表すことができます。これら 3 つの値は、結果が未定義であるか、正確に表現できない計算から生じます。 Java は既知の数学的事実に従っています。 1.0 / 0.0 は無限大ですが、その他は不定形式であり、Java では NaN (数値ではない) として表現されます。

例:

Java
// Demonstrating output of floating // point number operations public class Geeks {  public static void main(String[] args)  {  System.out.println(2.0 / 0);  System.out.println(-2.0 / 0);  System.out.println(9.0E234 / 0.1E-234);  } } 

出力
Infinity -Infinity Infinity 
クイズの作成