Como arredondar um duplo para dois lugares decimais em Java
-
Rodada de um
double
para duas casas decimais utilizandoMath.round(double*100.0)/100.0
-
Arredondar de um
double
para duas casas decimais usandoBigDecimal
-
Arredondar de um
double
para duas casas decimais utilizandoDecimalFormat
-
Arredondar de um valor
double
para duas casas decimais utilizandoApache Common
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.