Al trabajar con números en Java, es muy posible que necesitemos redondear valores decimales de cara a simplificar cálculos o presentar datos de forma mucho más clara y estructurada. Nadie quiere encontrarse con un número de ntantos decimales, es molesto y desagradable a la vista, por eso , el método math.round() en Java se convierte en un elemento de gran utilidad en estos casos, ya que es una herramienta muy usada para redondear números al entero más cercano.
El día de hoy te queremos explicar cómo funciona el método math.round() en Java y cómo puedes usarlo para redondear números en el desarrollo de tu código.
¿Qué es Math.round() en Java?
El math.round() en Java es un método perteneciente a la clase Math y tiene el propósito de redondear un número decimal, ya sea float o double, al número entero más cercano. Este método sigue una lógica bastante simple que es igual a la que se utiliza habitualmente en las matemáticas para hacer aproximaciones: si la parte decimal es 0.5 o mayor, el número se redondea hacia arriba; pero si es menor, se redondea hacia abajo. Este se conoce como el modo de redondeo HALF_UP.
La firma de este método es la siguiente:
Math.round(valor)
Donde valor puede ser un número float o double y el resultado será un número int o long, respectivamente.
¿Cómo es el funcionamiento de Math.round() en Java?
Ya explicamos un poco cómo funciona el math.round() en Java y que se hace por medio del redondeo HALF_UP. Pues bien, para ampliar, podemos decir que el método toma el número que le pasas, le suma 0.5 y luego aplica la función math.floor(), que lo que hace es redondear hacia abajo. De este modo, se asegura que si la parte decimal es 0.5 o más, el número sea redondeado hacia arriba:
public class EjemploMathRound {
public static void main(String[] args) {
double numero = 2.71828;
int resultado = Math.round(numero);
System.out.println("Resultado: " + resultado); // Imprime: Resultado: 3
}
}
En este caso Math.round() toma el valor 2.71828, y al tener una parte decimal mayor a 0.5, el resultado será 3.
¿En qué contextos se puede usar Math.round() en Java?
Math.round() en Java se puede aplicar en diferentes casos, veamos algunos ejemplos:
- Redondeo de valores flotantes
float pi = 3.14159f;
int resultadoPi = Math.round(pi);
System.out.println("Parte entera de pi: " + resultadoPi); // Imprime: Parte entera de pi: 3
En este caso el valor 3.14159 se redondea a 3, ya que la parte decimal es menor a 0.5.
- Redondeo de valores dobles
double euler = 2.71828;
long resultadoEuler = Math.round(euler);
System.out.println("Parte entera de euler: " + resultadoEuler); // Imprime: Parte entera de euler: 3
El valor de 2.71828 es redondeado a 3 porque, de nuevo, su parte decimal es mayor a 0.5.
- Redondeo hacia números negativos
double negativo = -1.499;
long resultadoNegativo = Math.round(negativo);
System.out.println("Redondeo de negativo: " + resultadoNegativo); // Imprime: Redondeo de negativo: -1
Incluso con números negativos, Math.round() en Java sigue la misma regla: si la parte decimal es menor de 0.5, redondea hacia abajo. En este caso el número resultante sería -1.
¿Qué diferencias guarda math.round() en Java con otros métodos?
Si bien existen otros métodos en Java que permiten redondear números, como Math.floor() (redondea siempre hacia abajo) y Math.ceil() (redondea siempre hacia arriba), Math.round() es el más adecuado cuando simplemente necesitas el entero más cercano. Veamos las diferencias entre estos tres métodos con un ejemplo:
Método | Descripción | Ejemplo (valor = 2.7) |
---|---|---|
Math.round() | Redondea al entero más cercano | 3 |
Math.floor() | Redondea siempre hacia abajo | 2 |
Math.ceil() | Redondea siempre hacia arriba | 3 |
Casos especiales de Math.round()
Existen algunos casos en los que el comportamiento de Math.round() en Java puede no ser el esperado si no estás familiarizado con ciertos detalles. Por ejemplo:
- Si el argumento es NaN: El resultado será
0
. - Si el argumento es infinito negativo: El resultado será el valor más pequeño permitido por el tipo de dato.
- Si el argumento es infinito positivo: El resultado será el valor máximo permitido por el tipo de dato.
Estos casos son poco frecuentes, pero es útil tenerlos en cuenta si estás trabajando con valores extremos o si tu aplicación puede encontrarse con NaN o infinito.
Sabemos que te apasiona la tecnología y por eso queremos darte un regalo. Keepcoding ha creado para ti el bootcamp en Java, una excelente opción para todos aquellos que están interesados en aprender un lenguaje específico y qué mejor que Java para iniciar tu formación. ¡Contáctanos ahora y recibe grandes sorpresas y beneficios!