Utiliser Double.isNaN() pour la vérification
Dans cette étape, nous apprendrons à vérifier si un nombre à virgule flottante est "Not a Number" (NaN) en Java en utilisant la méthode Double.isNaN()
.
Les nombres à virgule flottante dans les ordinateurs peuvent parfois donner lieu à une valeur spéciale appelée NaN. Cela se produit lorsque le résultat d'un calcul est indéfini ou ne peut pas être représenté comme un nombre standard. Par exemple, diviser zéro par zéro ou prendre la racine carrée d'un nombre négatif peut donner un résultat NaN.
Il est important de pouvoir détecter les valeurs NaN dans vos programmes car elles se comportent différemment des nombres ordinaires. Par exemple, comparer une valeur NaN avec n'importe quel autre nombre (même un autre NaN) en utilisant les opérateurs de comparaison standard (==
, <
, >
) donnera toujours false
.
Java fournit une méthode spécifique pour vérifier les valeurs NaN : Double.isNaN()
. Cette méthode prend une valeur de type double
en entrée et renvoie true
si la valeur est NaN, et false
dans le cas contraire.
Créons un simple programme Java pour démontrer comment utiliser Double.isNaN()
.
-
Ouvrez le fichier HelloJava.java
dans l'éditeur WebIDE.
-
Remplacez le code existant par le suivant :
public class CheckNaN {
public static void main(String[] args) {
double result1 = 0.0 / 0.0; // This will result in NaN
double result2 = 10.0 / 2.0; // This is a regular number
System.out.println("Is result1 NaN? " + Double.isNaN(result1));
System.out.println("Is result2 NaN? " + Double.isNaN(result2));
}
}
Dans ce code :
- Nous déclarons deux variables de type
double
, result1
et result2
.
result1
est affecté du résultat de 0.0 / 0.0
, qui est une forme indéterminée et produira NaN.
result2
est affecté du résultat de 10.0 / 2.0
, qui est un nombre standard (5.0).
- Nous utilisons ensuite
Double.isNaN()
pour vérifier si result1
et result2
sont des valeurs NaN et affichons les résultats.
-
Enregistrez le fichier (Ctrl+S ou Cmd+S).
-
Maintenant, nous devons compiler ce nouveau programme. Comme nous avons changé le nom de la classe en CheckNaN
, nous devons compiler CheckNaN.java
. Ouvrez le terminal et exécutez :
javac CheckNaN.java
Si la compilation est réussie, vous ne devriez voir aucun message de sortie.
-
Enfin, exécutez le programme compilé :
java CheckNaN
Vous devriez voir une sortie similaire à ceci :
Is result1 NaN? true
Is result2 NaN? false
Cette sortie confirme que Double.isNaN()
a correctement identifié result1
comme une valeur NaN et result2
comme un nombre ordinaire.
L'utilisation de Double.isNaN()
est la manière correcte et fiable de vérifier les valeurs NaN en Java. Il n'est pas recommandé de s'appuyer sur une comparaison directe (== Double.NaN
) car, comme mentionné précédemment, NaN == NaN
s'évalue à false
.