Redondear a un numero de decimales en Java

Hola a todos, hoy os explicare como podemos redondear decimales en Java.

Es nuestros programas es normal para mostrar números reales con un determinado número de decimales como por ejemplo en facturas.

IMPORTANTE: Los pongo en dos linea para que se vea mejor, podéis usarlo en una línea.

Con una simple línea podemos hacerlo:


double redondeado = new BigDecimal(TU_DECIMAL_AQUI)
                                     .setScale(NUMERO_DECIMALES_AQUI, RoundingMode.HALF_EVEN).doubleValue();

Un ejemplo del anterior codigo podria ser esto:


double redondeado = new BigDecimal(15.51111111)
                                    .setScale(2, RoundingMode.HALF_EVEN).doubleValue();

En el código anterior, mostrará 15.56 por ejemplo.

Os dejo una simple función que automatiza este proceso, solo le tenemos que pasar el double y el numero de decimales:


public static double redondeoDecimales(double numero, int numeroDecimales) {
    BigDecimal redondeado = new BigDecimal(numero)
                                .setScale(numeroDecimales, RoundingMode.HALF_EVEN);
    return redondeado.doubleValue();
}

Os dejo otro para float:

 public static float redondeoDecimales(float numero, int numeroDecimales) {
     BigDecimal redondeado = new BigDecimal(numero)
                                 .setScale(numeroDecimales, RoundingMode.HALF_EVEN);
     return redondeado.floatValue();
 }


Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

4 comentarios

  1. eduardo mendez

    en este programa como puedo hacer para que se me redonde el resultado

  2. Cristhian

    Me a servido de mucho. Gracias

  3. PapaFrita

    ¿se puede redondear números decimales usando solo operadores matemáticos?

  4. Davids

    Perfecta explicación, gracias me sirvió de mucho

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *