1
resposta

[Bug] Reajuste maior que 40%

Professor, tudo bem? Baixei o projeto e fui verificar o funcionamento do código. Notei que para um salário de 1000 e reajuste de 401 ou mesmo 499 o método reajusteSalario acaba aceitando esses valores. Pelo que entendi devido ao parâmetro RoundingMode estar presente no método divide do BigDecimal. Isso acontece na linha 25 da classe Funcionario. Retirando esse parâmetro consegui fazer funcionar. E nenhuma opção da RoundingMode deu certo, por isso retirei.

Pode ser que devido a essa alteração dê brecha para algum valor inválido, mas resolvi abrir esse tópico porque aí deixo aberto para sugestões ou correção.

Obrigado!

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi Samir!

Desculpe a demora. Verdade! Como o foco do curso eram os princípios SOLID e da orientação a objetos, acabou passando batido esse detalhe.

O ideal seria utilizar a sobrecarga do método divide que recebe também as casas decimais, com 3 casa decimais para aumentar a precisão:

BigDecimal percentualReajuste = aumento.divide(salarioAtual, 3, RoundingMode.HALF_UP);

Bons estudos!