NaN, Infinito - 1

"Olá, amigo!"

"Hoje vou falar sobre algumas coisas interessantes em Java."

" Infinito ."

Em Java, o tipo double tem valores especiais para infinito positivo e infinito negativo . Um número positivo dividido por 0,0 produz infinito positivo e um número negativo - infinito negativo .

Esses conceitos são representados por constantes duplas especiais:

Código Descrição
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 isso realmente funciona?"

"Sim. Olhe para isto:"

Código
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
Saída da tela:
Infinity
Infinity
Infinity
-Infinity

"Realmente funciona. E se tivermos ambigüidade? Por exemplo, se subtrairmos o infinito do infinito?"

"Para isso, o Java tem outro conceito: Not-a-Number ( NaN )."

"É usado em várias situações:"

1)  A string está sendo convertida em um número, mas contém letras. O resultado é NaN.

2) Infinito menos infinito. O resultado é NaN.

3) Muitas outras situações em que esperamos um número, mas acabamos com algo indefinido.

"Então, quais operações você pode realizar com Infinity e NaN?"

"Com NaN é muito simples. Qualquer operação envolvendo NaN resulta em NaN."

"E com infinito, você pode fazer o seguinte:"

Expressão Resultado
n ÷ ±Infinity
0
±Infinity × ±Infinity
±infinito
±(something other than zero) ÷ 0
±infinito
Infinity + Infinity
Infinidade
±0 ÷ ±0
NaN
Infinity - Infinity
NaN
±Infinity ÷ ±Infinity
NaN
±Infinity × 0
NaN

"Isso faz sentido. Obrigado, Rishi."