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クイズの作成