logo

NaN (pas un nombre) en Java

En Java, la signification de NaN est Pas un numéro et il est présent dans java.lang.Double et java.lang.Float cours. Il s'agit d'une valeur spéciale qui représente une valeur numérique non définie. Nous pouvons rencontrer NAN dans des calculs mathématiques où le résultat n'est pas défini.

  • Si nous essayons de calculer la racine carrée d'un Math.sqrt(-1) négatif, il renverra NaN car la racine carrée d'un nombre négatif n'est pas définie.
  • Si nous essayons de diviser zéro par zéro, cela renverra également NaN.

Exemple:

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

Sortir
NaN NaN NaN 

Parfois mathématiques cela n'a pas de sens, c'est pourquoi NaN existe. Au lieu de générer des erreurs, Java renvoie simplement NaN pour montrer que quelque chose ne va pas.



Comment créer du NaN ?

Avec l'aide de Double ou Flotter classes, nous pouvons créer un NAN.

double n = Double.NaN ; // Utilisation de Double

float n = Float.NaN; // Utilisation de Flottant

négation mathématique discrète

Comment comparer les valeurs NaN ?

Les NaN ne sont pas ordonnés, cela signifie que toute comparaison avec NaN renverra faux. Si nous comparons NaN à un autre NaN ou si nous utilisons des opérateurs relationnels, le résultat sera toujours faux. Nous allons maintenant discuter du fonctionnement de NaN dans différents scénarios.

1. Opérateurs relationnels et NaN

  • Les opérateurs de comparaison numérique< <= >et >= renvoie toujours false si l'un ou les deux opérandes sont NaN.
  • L'opérateur d'égalité == renvoie false si l'un des opérandes est NaN.
  • L'opérateur d'inégalité != renvoie vrai si l'un des opérandes est NaN.

Exemple:

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

Sortir
Check if equal :false Check if unequal: true Check if equal: false Check if unequal: true false false 


2. isN() Frères

Cette méthode est utilisée pour vérifier si une valeur est NaN.

Exemple:

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

Sortir
NaN = true -Infinity = false 


conversion de entier en chaîne

3. Le type flottant ne produit pas d'exception lors du fonctionnement avec des valeurs mathématiques

NaN suit le Virgule flottante IEEE 754 standard. IEEE 754 les nombres à virgule flottante peuvent représenter l'infini positif ou négatif et NaN. Ces trois valeurs proviennent de calculs dont le résultat est indéfini ou ne peut être représenté avec précision. Java suit des faits mathématiques connus. 1,0 / 0,0 est l'infini mais les autres sont des formes indéterminées que Java représente comme NaN (pas un nombre).

Exemple:

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

Sortir
Infinity -Infinity Infinity 
Créer un quiz