NaN, Infinito - 1

"¡Hola, amigo!"

"Hoy les voy a hablar de algunas cosas interesantes en Java".

" Infinito ".

En Java, el tipo doble tiene valores especiales para infinito positivo e infinito negativo . Un número positivo dividido por 0.0 da infinito positivo y un número negativo — infinito negativo .

Estos conceptos están representados por constantes dobles especiales:

Código Descripción
public static final double POSITIVE_INFINITY = 1.0 / 0.0;
infinito positivo
public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
infinito negativo

"¿Y eso realmente funciona?"

"Sí. Mira esto:"

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
Salida de pantalla:
Infinity
Infinity
Infinity
-Infinity

"Realmente funciona. ¿Y si tenemos ambigüedad? Por ejemplo, ¿si restamos infinito de infinito?"

“Para esto, Java tiene otro concepto: Not-a-Number ( NaN )”.

"Se usa en varias situaciones:"

1)  La cadena se está convirtiendo en un número, pero contiene letras. El resultado es NaN.

2) Infinito menos infinito. El resultado es NaN.

3) Muchas otras situaciones en las que esperamos un número, pero terminamos con algo indefinido.

"Entonces, ¿qué operaciones puedes realizar con Infinity y NaN?"

"Con NaN, es muy simple. Cualquier operación que involucre NaN da como resultado NaN".

"Y con infinito, puedes hacer lo siguiente:"

Expresión Resultado
n ÷ ±Infinity
0
±Infinity × ±Infinity
±Infinito
±(something other than zero) ÷ 0
±Infinito
Infinity + Infinity
Infinidad
±0 ÷ ±0
Yaya
Infinity - Infinity
Yaya
±Infinity ÷ ±Infinity
Yaya
±Infinity × 0
Yaya

"Eso tiene sentido. Gracias, Rishi".