Que são BigDecimal e MathContext em Java, qual suas funcionalidades?

Estou estudando e vi essas duas referências, BigDecimal.java e MathContext.java
Não sei o que são, qual sua funcionalidade, alguém pode me ajudar?

1 curtida

BigDecimal
MathContext

1 curtida

Você usa MathContext no BigDecimal basicamente para definir a precisão de casas decimais dele. Por exemplo, quando você vai fazer uma divisão com BigDecimal (myBigDecimal.divide(otherBigDecimal);) você pode usar um MathContext para definir a precisão do resultado da divisão (como 10 casas decimais, por exemplo).

Você deve usar BigDecimal no lugar de double sempre que precisar de precisão, e isto inclui todas as vezes que for trabalhar com dinheiro.

Exemplo:

double d1 = 0.1;
double d2 = 0.2;
System.out.println(d1 + d2);

A Saída é “0.30000000000000004” ao invés de “3”! Com BigDecimal você não terá este problema.

Veja este Link sobre BigDecimal

Muito obrigado pela explicação Douglas, foi de grande ajuda.

Grato