W Javie znaczenie NaN Jest Nie liczba i jest obecny w java.lang.Double I java.lang.Float zajęcia. Jest to wartość specjalna, która reprezentuje niezdefiniowaną wartość liczbową. NAN możemy spotkać w obliczeniach matematycznych, gdzie wynik jest nieokreślony.
- Jeśli spróbujemy obliczyć pierwiastek kwadratowy z liczby ujemnej Math.sqrt(-1), zwróci NaN, ponieważ pierwiastek kwadratowy z liczby ujemnej jest niezdefiniowany.
- Jeśli spróbujemy podzielić zero przez zero, zwróci również NaN.
Przykład:
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)); } }
Wyjście
NaN NaN NaN
Czasami matematyka nie ma sensu, dlatego istnieje NaN. Zamiast wyrzucać błędy, Java po prostu zwraca NaN, aby pokazać, że coś jest nie tak.
Jak stworzyć NaN?
Z pomocą Podwójnie Lub Platforma klas możemy utworzyć sieć NAN.
podwójne n = Double.NaN; // Używanie Double
float n = Float.NaN; // Używanie pływaka
mylivecricket w grze w krykieta na żywo
Jak porównać wartości NaN?
NaN są nieuporządkowane, co oznacza, że każde porównanie z NaN zwróci wartość false. Jeśli porównamy NaN z innym NaN lub użyjemy operatorów relacyjnych, wynik zawsze będzie fałszywy. Teraz omówimy, jak NaN działa w różnych scenariuszach.
1. Operatory relacyjne i NaN
- Numeryczne operatory porównania< <= >i >= zawsze zwracają wartość false, jeśli jeden lub oba operandy to NaN.
- Operator równości == zwraca fałsz, jeśli którykolwiek z operandów to NaN.
- Operator nierówności != zwraca wartość true, jeśli którykolwiek z operandów to NaN.
Przykład:
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); } }
Wyjście
Check if equal :false Check if unequal: true Check if equal: false Check if unequal: true false false
2. isN() Bracia
Ta metoda służy do sprawdzania, czy wartość to NaN.
Przykład:
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()); } }
Wyjście
NaN = true -Infinity = false
czytanie pliku csv w Javie
3. Typ zmiennoprzecinkowy nie powoduje wyjątku podczas operowania wartościami matematycznymi
NaN podąża za IEEE 754 zmiennoprzecinkowy standard. IEEE754 Liczby zmiennoprzecinkowe mogą reprezentować dodatnią lub ujemną nieskończoność i NaN. Te trzy wartości wynikają z obliczeń, których wynik jest nieokreślony lub nie można go dokładnie przedstawić. Java podąża za znanymi faktami matematycznymi. 1,0 / 0,0 to nieskończoność, ale pozostałe to formy nieokreślone, które Java reprezentuje jako NaN (nie liczbę).
Przykład:
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); } }
Wyjście
Infinity -Infinity InfinityUtwórz quiz