1
resposta

Configurar casas decimais

No exemplo foi alterado o retorno do método BonusService para 2 casas decimais através do valor.setScale(2, RoundingMode.HALF_UP) e para validar os valores no teste, teve que colocar ".00" ao instanciar um bigDecimal. Acho trabalhoso sempre ter que colocar as casas decimais e inclusive pode gerar erros caso esqueça de informar. Não tem como configurar uma única vez no sistema p/ que toda declaração ou resultado de um calculo a quantidade de casa decimais seja sempre 2 (por exemplo) e quando quisermos um quantidade de casas decimais diferente, aí sim especificamos essa quantidade desejada.

1 resposta

Olá, Álvaro!

Entendo sua dúvida e, infelizmente, não é possível configurar uma única vez no sistema para que toda declaração ou resultado de um cálculo a quantidade de casas decimais seja sempre 2.

Porém, uma solução para evitar o trabalho de sempre colocar as casas decimais e reduzir a chance de erros é criar uma constante com o número de casas decimais desejado e utilizá-la em todo o código. Dessa forma, caso seja necessário alterar o número de casas decimais, basta alterar o valor da constante em um único lugar.

Por exemplo:

public class Exemplo {
    private static final int NUMERO_CASAS_DECIMAIS = 2;

    public static void main(String[] args) {
        double valor = 10.123456;
        BigDecimal bigDecimal = new BigDecimal(valor).setScale(NUMERO_CASAS_DECIMAIS, RoundingMode.HALF_UP);
        System.out.println(bigDecimal);
    }
}

Nesse exemplo, a constante NUMERO_CASAS_DECIMAIS foi definida como 2 e utilizada no método setScale() para definir o número de casas decimais do BigDecimal. Caso seja necessário alterar o número de casas decimais, basta alterar o valor da constante.

Espero ter ajudado e bons estudos!