I Java betydningen av NaN er Ikke et nummer og den er tilstede i java.lang.Double og java.lang.Float klasser. Det er en spesiell verdi som representerer en udefinert numerisk verdi. Vi kan støte på NAN i matematiske beregninger der resultatet er udefinert.
tilfeldig tall i java
- Hvis vi prøver å beregne kvadratroten av et negativt Math.sqrt(-1) vil det returnere NaN fordi kvadratroten av et negativt tall er udefinert.
- Hvis vi prøver å dele null på null vil det også returnere NaN.
Eksempel:
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)); } }
Produksjon
NaN NaN NaN
Noen ganger matematikk gir ikke mening, det er derfor NaN eksisterer. I stedet for å kaste feil returnerer Java ganske enkelt NaN for å vise at noe er galt.
Hvordan lage NaN?
Ved hjelp av Dobbelt eller Flyte klasser kan vi lage et NAN.
dobbel n = Dobbel.NaN; // Bruke Double
float n = Float.NaN; // Bruke Float
Hvordan sammenligne NaN-verdier?
NaN er uordnet betyr det at enhver sammenligning med NaN vil returnere falsk. Hvis vi sammenligner NaN med en annen NaN, eller vi bruker relasjonsoperatorer, vil resultatet alltid være usant. Nå skal vi diskutere hvordan NaN fungerer i forskjellige scenerier.
java understreng inneholder
1. Relasjonelle operatører og NaN
- De numeriske sammenligningsoperatorene< <= >og >= returnerer alltid usann hvis en av eller begge operandene er NaN.
- Likhetsoperatoren == returnerer usann hvis en av operandene er NaN.
- Ulikhetsoperatoren != returnerer sann hvis en av operandene er NaN.
Eksempel:
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); } }
Produksjon
Check if equal :false Check if unequal: true Check if equal: false Check if unequal: true false false
2. isnN() Brødre
Denne metoden brukes til å sjekke om en verdi er NaN.
Eksempel:
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()); } }
Produksjon
NaN = true -Infinity = false
nettverk og typer
3. Flytende type gir ikke unntak når du opererer med matematiske verdier
NaN følger IEEE 754 flytende komma standard. IEEE 754 Flyttall kan representere positiv eller negativ uendelighet og NaN. Disse tre verdiene oppstår fra beregninger hvis resultat er udefinert eller ikke kan representeres nøyaktig. Java følger kjente matematiske fakta. 1.0 / 0.0 er uendelig, men de andre er ubestemte former som Java representerer som NaN (ikke et tall).
Eksempel:
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); } }
Produksjon
Infinity -Infinity InfinityLag quiz