logo

NaN (nav numurs) Java valodā

NaN ir un tas ir klāt un klasēm. Tā ir īpaša vērtība, kas apzīmē nenoteiktu skaitlisku vērtību. Mēs varam saskarties ar NAN matemātiskajos aprēķinos, ja rezultāts nav definēts.

  • Ja mēģināsim aprēķināt negatīva Math.sqrt(-1) kvadrātsakni, tas atgriezīs NaN, jo negatīva skaitļa kvadrātsakne nav definēta.
  • Ja mēģināsim dalīt nulli ar nulli, tas arī atgriezīs NaN.

Piemērs:

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));  } } 

Izvade
NaN NaN NaN 

Dažkārt matemātika nav jēgas, tāpēc NaN pastāv. Tā vietā, lai izmestu kļūdas, Java vienkārši atgriež NaN, lai parādītu, ka kaut kas nav kārtībā.



Ar palīdzību Dubults vai Pludiņš klasēm mēs varam izveidot NAN.

dubultā n = Double.NaN; // Using Double

peldēt n = Float.NaN; // Izmantojot Float

Kā salīdzināt NaN vērtības?

NaN ir nesakārtoti, tas nozīmē, ka jebkurš salīdzinājums ar NaN būs nepatiess. Ja mēs salīdzinām NaN ar citu NaN vai mēs izmantojam relāciju operatorus, rezultāts vienmēr būs nepatiess. Tagad mēs apspriedīsim, kā NaN darbojas dažādos scenārijos.

1. Relāciju operatori un NaN

  • Skaitliskie salīdzināšanas operatori< <= >un >= vienmēr atgriež false, ja viens vai abi operandi ir NaN.
  • Vienādības operators == atgriež false, ja kāds no operandiem ir NaN.
  • Nevienlīdzības operators != atgriež patiesu, ja kāds no operandiem ir NaN.

Piemērs:

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);  } } 

Izvade
Check if equal :false Check if unequal: true Check if equal: false Check if unequal: true false false 


2. isnN() Brāļi

Šo metodi izmanto, lai pārbaudītu, vai vērtība ir NaN.

lidinās css

Piemērs:

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());    } }  

Izvade
NaN = true -Infinity = false 


3. Peldošais tips nerada izņēmumus, strādājot ar matemātiskām vērtībām

NaN seko IEEE 754 peldošā komata standarts standarta. IEEE 754 peldošā komata skaitļi var attēlot pozitīvu vai negatīvu bezgalību un NaN. Šīs trīs vērtības izriet no aprēķiniem, kuru rezultāts nav definēts vai tos nevar precīzi attēlot. Java seko zināmiem matemātikas faktiem. 1.0 / 0.0 ir bezgalība, bet pārējās ir nenoteiktas formas, kuras Java attēlo kā NaN (nevis skaitli).

Piemērs:

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);  } } 

Izvade
Infinity -Infinity Infinity 
Izveidojiet viktorīnu