I Java betydningen af NaN er Ikke et nummer og det er til stede i java.lang.Dobbelt og java.lang.Float klasser. Det er en speciel værdi, der repræsenterer en udefineret numerisk værdi. Vi kan støde på NAN i matematiske beregninger, hvor resultatet er udefineret.
tilfældigt tal i java
- Hvis vi forsøger at beregne kvadratroden af et negativt Math.sqrt(-1), vil det returnere NaN, fordi kvadratroden af et negativt tal er udefineret.
- Hvis vi prøver at dividere nul med nul, 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)); } }
Produktion
NaN NaN NaN
Undertiden matematik giver ikke mening, det er derfor NaN eksisterer. I stedet for at smide fejl returnerer Java blot NaN for at vise, at der er noget galt.
Hvordan opretter man NaN?
Ved hjælp af Dobbelt eller Flyde klasser kan vi oprette et NAN.
dobbelt n = Dobbelt.NaN; // Brug af Double
float n = Float.NaN; // Brug af Float
Hvordan sammenligner man NaN-værdier?
NaN er uordnet betyder det, at enhver sammenligning med NaN vil returnere falsk. Hvis vi sammenligner NaN med en anden NaN, eller vi bruger relationelle operatorer, vil resultatet altid være falsk. Nu skal vi diskutere, hvordan NaN fungerer i forskellige scenerier.
sammenligne med streng
1. Relationelle operatører og NaN
- De numeriske sammenligningsoperatorer< <= >og >= returnerer altid falsk, hvis den ene eller begge operander er NaN.
- Lighedsoperatoren == returnerer falsk, hvis en af operanderne er NaN.
- Ulighedsoperatoren != returnerer sand, hvis en af operanderne 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); } }
Produktion
Check if equal :false Check if unequal: true Check if equal: false Check if unequal: true false false
2. isnN() Brødre
Denne metode bruges til at kontrollere, om en værdi 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()); } }
Produktion
NaN = true -Infinity = false
ikke
3. Flydende type producerer ikke undtagelser, mens de opererer med matematiske værdier
NaN følger IEEE 754 flydende komma standard. IEEE 754 Flydende kommatal kan repræsentere positiv eller negativ uendelighed og NaN. Disse tre værdier stammer fra beregninger, hvis resultat er udefineret eller ikke kan repræsenteres nøjagtigt. Java følger kendte matematiske fakta. 1.0 / 0.0 er uendelig, men de andre er ubestemte former, som Java repræsenterer som NaN (ikke et tal).
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); } }
Produktion
Infinity -Infinity InfinityOpret quiz