NaN, Infini - 1

« Salut Amigo ! »

"Aujourd'hui, je vais vous parler de choses intéressantes à Java."

« Infini ».

En Java, le type double a des valeurs spéciales pour l'infini positif et l'infini négatif . Un nombre positif divisé par 0,0 donne l'infini positif et un nombre négatif — l'infini négatif .

Ces concepts sont représentés par des constantes Double spéciales :

Code Description
public static final double POSITIVE_INFINITY = 1.0 / 0.0;
Infini positif
public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
Infini négatif

« Et ça marche vraiment ?

"Oui. Regarde ça :"

Code
double inf = Double.POSITIVE_INFINITY;
System.out.println(inf); // Infinity
System.out.println(inf + 1); // Infinity+1 == Infinity
System.out.println(inf + 10); // Infinity+10 == Infinity
System.out.println(inf * -1); // Equal to negative infinity
Double.NEGATIVE_INFINITY
Sortie écran :
Infinity
Infinity
Infinity
-Infinity

"Ça marche vraiment. Et s'il y a ambiguïté ? Par exemple, si on soustrait l'infini de l'infini ?"

"Pour cela, Java a un autre concept : Not-a-Number ( NaN )."

"Il est utilisé dans diverses situations :"

1)  La chaîne est convertie en nombre, mais elle contient des lettres. Le résultat est NaN.

2) Infini moins infini. Le résultat est NaN.

3) Beaucoup d'autres situations où nous attendons un nombre, mais nous nous retrouvons avec quelque chose d'indéfini.

« Alors, quelles opérations pouvez-vous effectuer avec Infinity et NaN ? »

"Avec NaN, c'est très simple. Toute opération impliquant NaN donne NaN."

"Et avec l'infini, vous pouvez faire ce qui suit :"

Expression Résultat
n ÷ ±Infinity
0
±Infinity × ±Infinity
±Infini
±(something other than zero) ÷ 0
±Infini
Infinity + Infinity
Infini
±0 ÷ ±0
NaN
Infinity - Infinity
NaN
±Infinity ÷ ±Infinity
NaN
±Infinity × 0
NaN

"C'est logique. Merci, Rishi."