ExpertiDict

Java · Intermediário · Inglês · Técnico

BigDecimal

/bɪɡ ˈdɛsɪməl/substantivo

Número decimal de precisão arbitrária e imutável, usado para dinheiro. Evita os erros de arredondamento de float e double.

Onde usar

Surge em cálculos financeiros: 'nunca use double para valor monetário'. A divisão exige informar a escala e o RoundingMode.

Em código

var a = new BigDecimal("10.00");
var b = new BigDecimal("3");
var c = a.divide(b, 2, RoundingMode.HALF_UP);
System.out.println(c); // 3.33
System.out.println(a.compareTo(b) > 0);

Exemplos

Never use double for money, use BigDecimal.

Nunca use double para dinheiro, use BigDecimal.

Build the BigDecimal from a String, not from a double.

Construa o BigDecimal a partir de uma String, não de um double.

Cuidado

Crie sempre a partir de String: new BigDecimal(0.1) carrega o erro binário do double. E equals considera a escala: 2.0 e 2.00 não são iguais.

Veja também

Todos os termos de Java