Cómo redondear un doble a dos decimales en Java

Payel Ganguly 12 octubre 2023
  1. Redondea un double a dos decimales usando Math.round(double*100.0)/100.0
  2. Redondeo de un double a dos decimales usando BigDecimal
  3. Redondea un double a dos decimales usando el DecimalFormat
  4. Redondear un double a dos decimales usando Apache Common Math
Cómo redondear un doble a dos decimales en Java

En el artículo anterior del tutorial, hemos entendido cómo convertir un Array en ArrayList en Java usando varios métodos con ejemplos detallados. Veremos más tipos de uso de Java a través de diferentes formas de análisis de escenarios.

En este artículo del tutorial, discutiremos sobre el redondeo de un doble a dos decimales usando Java. Hay cuatro formas de redondear un valor doble a dos decimales como Math.round(), BigDecimal usando el método setScale(), DecimalFormat y la biblioteca Apache Common.

Discutamos cada uno de ellos a través de ejemplos.

Redondea un double a dos decimales usando Math.round(double*100.0)/100.0

El método Math.round() se usa en Java para redondear un número dado a su entero más cercano. Como en este artículo, aprenderemos a redondear un double a dos decimales, la aplicación de Math.round() incluirá (double*100.0)/100.0.

Sigamos el siguiente ejemplo.

import java.io.*;
import java.lang.*;
import java.util.*;

public class Main {
  public static void main(String[] args) {
    double d = 7435.9876;
    double roundDbl = Math.round(d * 100.0) / 100.0;
    System.out.println("Rounded Double value: " + roundDbl);
  }
}

Resultado:

Rounded Double value: 7435.99

Redondeo de un double a dos decimales usando BigDecimal

De esta manera, primero podemos convertir double a BigDecimal y luego usar el método setScale() para redondear el BigDecimal convertido a dos decimales. Entendamos el siguiente ejemplo.

import java.io.*;
import java.lang.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;

public class Main {
  public static void main(String[] args) {
    double val1 = 4312.186462;
    System.out.println("Double value: " + val1);

    BigDecimal bd = new BigDecimal(val1).setScale(2, RoundingMode.HALF_UP);
    double val2 = bd.doubleValue();
    System.out.println("Rounded Double value: " + val2);
  }
}

Resultado:

Double value: 4312.186462
Rounded Double value: 4312.19

Redondea un double a dos decimales usando el DecimalFormat

También podemos redondear un valor de double a dos decimales usando DecimalFormat. Vamos a discutir en el siguiente ejemplo.

import java.io.*;
import java.lang.*;
import java.text.DecimalFormat;
import java.util.*;

public class Main {
  public static void main(String[] args) {
    double val1 = 6482.236789;
    System.out.println("Double value: " + val1);

    DecimalFormat df = new DecimalFormat("###.##");
    System.out.println("Rounded Double value (DecimalFormat): " + df.format(val1));
  }
}

Resultado:

Double value : 6482.236789 Rounded Double value : 6482.24

Redondear un double a dos decimales usando Apache Common Math

Un tipo especial de biblioteca matemática en Java se usa para redondear un double a dos decimales, que es Apache Common. Discutamos su utilización en el siguiente ejemplo.

Necesitamos añadir esta dependencia de la biblioteca en un archivo xml dentro del proyecto Java.

<dependency>
    <groudId>org.apache.commons</groudId>
    <artifactId>commons-math3</artifactId> 
    <version>3.6.1</version>
</dependency>

Ahora comprobemos la implementación de la biblioteca de apache para redondear un double a dos decimales.

import java.io.*;
import java.lang.*;
import java.util.*;
import org.apache.commons.math3.util.Precision;

public class Main {
  public static void main(String[] args) {
    double input = 9476.2351;
    double roundedDbl = Precision.round(input, 2);
    System.out.println("Rounded Double value: " + roundedDbl);
  }
}

Resultado:

Rounded Double value: 9476.24

Se recomienda seguir las tres primeras formas para aplicaciones simples de java.

Artículo relacionado - Java Double