Introducción
El método Java isFinite() se utiliza en el lenguaje Java para comprobar si el valor double pasado es un valor finito o no. Devuelve el valor booleano true si el valor double pasado tiene un valor finito, y devuelve false para los valores NaN e infinitos. En este laboratorio, aprenderá a usar el método Java isFinite().
Configurar el entorno de Java
Si aún no ha instalado Java en su sistema, descargue la última versión e instálela. Verifique la instalación ejecutando el siguiente comando:
java -version
Crear una clase Java
Cree una nueva clase Java llamada DoubleIsFiniteDemo en el directorio ~/project.
cd ~/project
touch DoubleIsFiniteDemo.java
Escribir el código Java
En este paso, escribiremos el código Java utilizando el método isFinite() para comprobar si el valor double pasado es un valor finito o no. Copie y pegue el siguiente código en DoubleIsFiniteDemo.java:
public class DoubleIsFiniteDemo {
public static void main(String[] args) {
double d1 = 100.0;
double d2 = Double.POSITIVE_INFINITY;
double d3 = Double.NEGATIVE_INFINITY;
double d4 = Double.NaN;
boolean b1 = Double.isFinite(d1);
boolean b2 = Double.isFinite(d2);
boolean b3 = Double.isFinite(d3);
boolean b4 = Double.isFinite(d4);
System.out.println("¿Es d1 finito? " + b1);
System.out.println("¿Es d2 finito? " + b2);
System.out.println("¿Es d3 finito? " + b3);
System.out.println("¿Es d4 finito? " + b4);
}
}
El código anterior declara cuatro variables double d1, d2, d3 y d4 con valores finitos, infinito positivo, infinito negativo y NaN, respectivamente. Luego, utiliza el método isFinite() para comprobar si cada una de las variables es finita o no.
Compilar y ejecutar el código Java
Compile el código utilizando el siguiente comando:
javac DoubleIsFiniteDemo.java
Después de compilar, puede ejecutar el código utilizando el siguiente comando:
java DoubleIsFiniteDemo
La salida del programa debería ser:
¿Es d1 finito? true
¿Es d2 finito? false
¿Es d3 finito? false
¿Es d4 finito? false
Personalizar el programa
En este paso, puede personalizar el programa para probar diferentes valores. Abra DoubleIsFiniteDemo.java en su editor de texto favorito y modifique los valores asignados a las variables double. Por ejemplo:
public class DoubleIsFiniteDemo {
public static void main(String[] args) {
double d1 = 1.23;
double d2 = 4.56;
double d3 = Double.NEGATIVE_INFINITY;
double d4 = Double.NaN;
boolean b1 = Double.isFinite(d1);
boolean b2 = Double.isFinite(d2);
boolean b3 = Double.isFinite(d3);
boolean b4 = Double.isFinite(d4);
if (b1) {
System.out.println("d1 es un valor double finito.");
} else {
System.out.println("d1 no es un valor double finito.");
}
if (b2) {
System.out.println("d2 es un valor double finito.");
} else {
System.out.println("d2 no es un valor double finito.");
}
if (b3) {
System.out.println("d3 es un valor double finito.");
} else {
System.out.println("d3 no es un valor double finito.");
}
if (b4) {
System.out.println("d4 es un valor double finito.");
} else {
System.out.println("d4 no es un valor double finito.");
}
}
}
Volver a compilar y ejecutar el código Java
Compile el código nuevamente utilizando el siguiente comando:
javac DoubleIsFiniteDemo.java
Después de compilar, puede ejecutar el programa personalizado utilizando el siguiente comando:
java DoubleIsFiniteDemo
Dependiendo de los valores que haya ingresado, el programa mostrará el resultado correspondiente.
Usar el método isFinite() en un método definido por el usuario
En este paso, crearemos un método definido por el usuario llamado printIsFinite() que toma un valor double como entrada y muestra si es finito o no utilizando el método isFinite().
Agregue el siguiente método dentro de la clase DoubleIsFiniteDemo:
public static void printIsFinite(double d) {
if (Double.isFinite(d)) {
System.out.println(d + " es un valor double finito.");
} else {
System.out.println(d + " no es un valor double finito.");
}
}
Luego, modifique el método main() de la siguiente manera:
public static void main(String[] args) {
double d1 = 1.23;
double d2 = 4.56;
double d3 = Double.NEGATIVE_INFINITY;
double d4 = Double.NaN;
printIsFinite(d1);
printIsFinite(d2);
printIsFinite(d3);
printIsFinite(d4);
}
El método principal pasa cada una de las cuatro variables double al método printIsFinite(), el cual luego comprueba si el valor es finito o no y muestra el resultado correspondiente.
Volver a compilar y ejecutar el código Java
Compile el código nuevamente utilizando el siguiente comando:
javac DoubleIsFiniteDemo.java
Después de compilar, puede ejecutar el programa utilizando el siguiente comando:
java DoubleIsFiniteDemo
La salida del programa debería ser:
1.23 es un valor double finito.
4.56 es un valor double finito.
-Infinity no es un valor double finito.
NaN no es un valor double finito.
Probar el código Java con valores límite
En este paso, probaremos el código Java con valores límite para ver cómo funciona el método isFinite().
Modifique el método main() de la siguiente manera:
public static void main(String[] args) {
double d1 = Double.MIN_VALUE;
double d2 = Double.MAX_VALUE;
double d3 = Double.POSITIVE_INFINITY;
double d4 = Double.NaN;
printIsFinite(d1);
printIsFinite(d2);
printIsFinite(d3);
printIsFinite(d4);
}
El método principal utiliza las constantes MIN_VALUE y MAX_VALUE de la clase Double para asignar, respectivamente, los valores double finitos más pequeños y más grandes a d1 y d2, y asigna los valores de infinito positivo y NaN a d3 y d4, respectivamente.
Vuelva a compilar y ejecutar el código Java utilizando los comandos siguientes:
javac DoubleIsFiniteDemo.java
java DoubleIsFiniteDemo
La salida del programa debería ser:
4.9E-324 es un valor double finito.
1.7976931348623157E308 es un valor double finito.
Infinity no es un valor double finito.
NaN no es un valor double finito.
Resumen
En este laboratorio, has aprendido cómo utilizar el método isFinite() de Java para comprobar si un valor double es un valor finito o no. También has aprendido cómo personalizar el programa para probar diferentes valores, cómo utilizar el método isFinite() en un método definido por el usuario y cómo probar el código Java con valores límite.



