Como arredondar um duplo para dois lugares decimais em Java

Payel Ganguly 12 outubro 2023
  1. Rodada de um double para duas casas decimais utilizando Math.round(double*100.0)/100.0
  2. Arredondar de um double para duas casas decimais usando BigDecimal
  3. Arredondar de um double para duas casas decimais utilizando DecimalFormat
  4. Arredondar de um valor double para duas casas decimais utilizando Apache Common
Como arredondar um duplo para dois lugares decimais em Java

No artigo anterior do tutorial, entendemos como converter um Array para ArrayList em Java utilizando vários métodos com exemplos detalhados. Analisaremos mais tipos de uso de Java através de diferentes formas de análise de cenários.

Neste artigo tutorial, discutiremos sobre o arredondamento de uma dupla a duas casas decimais utilizando Java. Há quatro maneiras de arredondar um valor duplo para duas casas decimais como Math.round(), BigDecimal utilizando o método setScale(), DecimalFormat e Apache Common library.

Vamos discutir cada caminho através de exemplos.

Rodada de um double para duas casas decimais utilizando Math.round(double*100.0)/100.0

O método Math.round() é utilizado em Java para arredondar um determinado número para seu número inteiro mais próximo. Como neste artigo, aprenderemos o arredondamento de um double para 2 casas decimais, a aplicação de Math.round() incluirá (double*100.0)/100.0.

Vamos seguir o exemplo abaixo.

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

Arredondar de um double para duas casas decimais usando BigDecimal

Desta forma, podemos primeiro converter double para BigDecimal e depois utilizar o método setScale() para arredondar o BigDecimal convertido para duas casas decimais. Vamos entender o exemplo abaixo.

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

Arredondar de um double para duas casas decimais utilizando DecimalFormat

Também podemos arredondar um valor double para duas casas decimais utilizando DecimalFormat. Vamos discutir no exemplo a seguir.

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

Arredondar de um valor double para duas casas decimais utilizando Apache Common

Um tipo especial de biblioteca matemática em Java é utilizada para arredondar uma double para duas casas decimais, que é Apache Common. Vamos discutir sua utilização no exemplo a seguir.

Precisamos adicionar esta dependência de biblioteca em um arquivo xml dentro do projeto Java.

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

Agora vamos verificar a implementação da biblioteca apache para arredondar um double para duas casas decimais.

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

É recomendado seguir os três primeiros caminhos para aplicações Java simples.

Artigo relacionado - Java Double