Hoy vamos a ver tres métodos para redondear números en Java. Según yo, existen 3 maneras de redondear números:
- Forzar redondear hacia abajo
- Forzar redondear hacia arriba
- Redondear según decimales del número
Veamos las 3 maneras de lograr esto usando Math en Java.
La librería Math en Java
Math
provee (entre muchos otros métodos útiles) 3 métodos para redondear números, los cuales son floor
, round
y ceil
.
Los 3 métodos para redondear números pueden ser llamados de manera estática; es decir, sin instanciar a Math
. Así:
double redondeado = Math.floor(otroNumero);
Ahora veamos la diferencia entre estos métodos y su forma de uso. Al final dejaré ejemplos de código para probar por ti mismo.
Redondear según criterio
Para esto usamos Math.round
. Esta función va a redondear hacia arriba o hacia abajo dependiendo de la parte decimal del número.
Si la parte decimal del número es menor que la mitad, lo va a redondear hacia abajo. En caso de que sea la mitad o mayor, lo redondea hacia arriba.
Por ejemplo, el valor 1.5 sube a 2 mientras que 1.49 baja a 1. Igualmente con otros números, el 1545.50000 sube a 1546 y 7897.4999 baja a 7896; todo depende de la parte decimal.
Forzar redondeo hacia abajo
En este caso usamos Math.floor
para redondear un número hacia abajo. Por ejemplo, 1.9 y 1.1 bajan a 1. De igual manera 123.99 y 123.001 bajan a 123.
Redondear hacia arriba
El criterio es el mismo que cuando se redondea hacia abajo, pero ahora todos los números suben. Por ejemplo, el 1.1 y 1.9 suben a 2. Para esto se usa Math.ceil
.
Ejemplos de redondeo en Java
Para poner un ejemplo de las 3 maneras de redondear en Java usando la clase Math veamos el siguiente código en donde redondeamos un número hacia abajo, hacia arriba y luego dependiendo de su fracción.
class Main {
public static void main(String[] args) {
double numero = 15.1;
System.out.println("Originalmente el número es: " + numero);
// Hacia arriba si decimal es >= 5, o sea
// 1.5 sube a 2, 1.51 sube a 2, 1.90 sube a 2
// pero 1.49 o 1.4999999 baja a 1, igual que 1.1 o 1.2,
// etcétera
System.out.println("Con round: " + Math.round(numero));
// Forzar hacia abajo sin importar decimal. Tanto 1.9 como 1.1
// se convierten en 1
System.out.println("Con floor: " + Math.floor(numero));
// Lo contrario de floor. Forzar hacia arriba. Tanto
// 1.1 como 1.9 suben a 2
System.out.println("Con ceil: " + Math.ceil(numero));
/*
La salida es:
Originalmente el número es: 15.1
Con round: 15
Con floor: 15.0
Con ceil: 16.0
*/
}
}
Si quieres probar el ejemplo instala Java, adicionalmente, si quieres un poderoso IDE instala NetBeans.
Con eso queda demostrado cómo redondear números en Java. Puedes leer la documentación oficial de Math para entender mejor cómo funciona, así como los tipos de datos que acepta y esas cosas.
Aprende más sobre Java aquí.