Utilizar Double.isNaN() para la comprobación
En este paso, aprenderemos cómo verificar si un número de punto flotante es "Not a Number" (NaN) en Java utilizando el método Double.isNaN()
.
Los números de punto flotante en las computadoras a veces pueden resultar en un valor especial llamado NaN. Esto sucede cuando el resultado de un cálculo es indefinido o no se puede representar como un número estándar. Por ejemplo, dividir cero entre cero o calcular la raíz cuadrada de un número negativo puede resultar en NaN.
Es importante poder detectar los valores NaN en tus programas porque se comportan de manera diferente a los números regulares. Por ejemplo, comparar un valor NaN con cualquier otro número (incluso con otro NaN) utilizando operadores de comparación estándar (==
, <
, >
) siempre dará como resultado false
.
Java proporciona un método específico para comprobar si un valor es NaN: Double.isNaN()
. Este método toma un valor double
como entrada y devuelve true
si el valor es NaN y false
en caso contrario.
Vamos a crear un sencillo programa de Java para demostrar cómo utilizar Double.isNaN()
.
-
Abre el archivo HelloJava.java
en el editor WebIDE.
-
Reemplaza el código existente con el siguiente:
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));
}
}
En este código:
- Declaramos dos variables
double
, result1
y result2
.
result1
se le asigna el resultado de 0.0 / 0.0
, que es una forma indeterminada y producirá NaN.
result2
se le asigna el resultado de 10.0 / 2.0
, que es un número estándar (5.0).
- Luego utilizamos
Double.isNaN()
para comprobar si result1
y result2
son NaN y mostramos los resultados.
-
Guarda el archivo (Ctrl+S o Cmd+S).
-
Ahora, necesitamos compilar este nuevo programa. Dado que cambiamos el nombre de la clase a CheckNaN
, necesitamos compilar CheckNaN.java
. Abre la Terminal y ejecuta:
javac CheckNaN.java
Si la compilación es exitosa, no deberías ver ninguna salida.
-
Finalmente, ejecuta el programa compilado:
java CheckNaN
Deberías ver una salida similar a esta:
Is result1 NaN? true
Is result2 NaN? false
Esta salida confirma que Double.isNaN()
identificó correctamente result1
como NaN y result2
como un número regular.
Utilizar Double.isNaN()
es la forma correcta y confiable de comprobar si un valor es NaN en Java. No se recomienda confiar en una comparación directa (== Double.NaN
) porque, como se mencionó anteriormente, NaN == NaN
se evalúa como false
.