NaN, Infinito - 1

"Ciao, Amico!"

"Oggi ti parlerò di alcune cose interessanti in Java."

" Infinito ".

In Java, il tipo double ha valori speciali per infinito positivo e infinito negativo . Un numero positivo diviso per 0,0 produce infinito positivo e un numero negativo — infinito negativo .

Questi concetti sono rappresentati da speciali doppie costanti:

Codice Descrizione
public static final double POSITIVE_INFINITY = 1.0 / 0.0;
Infinito positivo
public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
Infinito negativo

"E funziona davvero?"

"Sì. Guarda questo:"

Codice
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
Uscita sullo schermo:
Infinity
Infinity
Infinity
-Infinity

"Funziona davvero. E se abbiamo ambiguità? Ad esempio, se sottraiamo infinito da infinito?"

"Per questo, Java ha un altro concetto: Not-a-Number ( NaN )."

"È usato in varie situazioni:"

1)  La stringa viene convertita in un numero, ma contiene lettere. Il risultato è NaN.

2) Infinito meno infinito. Il risultato è NaN.

3) Molte altre situazioni in cui ci aspettiamo un numero, ma finiamo con qualcosa di indefinito.

"Allora, quali operazioni puoi eseguire con Infinity e NaN?"

"Con NaN, è molto semplice. Qualsiasi operazione che coinvolga NaN si traduce in NaN."

"E con l'infinito, puoi fare quanto segue:"

Espressione Risultato
n ÷ ±Infinity
0
±Infinity × ±Infinity
±Infinito
±(something other than zero) ÷ 0
±Infinito
Infinity + Infinity
Infinito
±0 ÷ ±0
NaN
Infinity - Infinity
NaN
±Infinity ÷ ±Infinity
NaN
±Infinity × 0
NaN

"Ha senso. Grazie, Rishi."