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!

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!