Resolvido - Operação dentro do Get

Boa tarde tenho este get:

public BigDecimal getCargahoraria() { return this.cargahoraria; }

gostaria de saber se posso realizar uma operação dentro dele, gostaria de dividir todos os valores recebidos por 20:
ex: cargahoraria/20;

Como posso fazer?
Obrigada :smiley:

Sim pode, ficaria assim:


    private cargaHoraria

    public BigDecimal getCargaHoraria() {  
            return this.cargaHoraria.divide(20);  
        }  

Só tomar cuidado com BigDecimal, porque normalmente o método “divide” (com apenas um argumento) dá erros. Suponha que o número usado tivesse sido 3 ou 7 ou 11, em vez de 20. Quando você divide algo por 3, 7 ou 11, o resultado normalmente é uma dízima periódica, o que provoca um erro no método divide.

Para que o método divide não retorne erros, você precisa usar o “divide” com mais parâmetros, e saber quantas casas decimais você quer depois da vírgula.

http://docs.oracle.com/javase/6/docs/api/java/math/BigDecimal.html#divide(java.math.BigDecimal,%20int,%20int)

Olá estou fazendo:

[code]public BigDecimal getCargahoraria() {
return this.cargahoraria.divide(cargahoraria, 20, RoundingMode.HALF_DOWN);

}[/code]

e ele retorna em todos os resultados :1.00000000000000000000
não faz o cálculo.

Ah sim vc está dividindo ele por ele mesmo, faz assim:


BigDecimal valor1 = new BigDecimal(200);

System.out.println(valor1.divide(new BigDecimal(20), 2, BigDecimal.ROUND_HALF_DOWN));

Um exemplo para vc ver o funcionamento, o valor1 é seu cargaHoraria e o 20 é a divisão, o 2 são as casas decimais e o arredondamento

Valeu Diogo deu certo…

Obrigada :smiley:

Valeu Diogo deu certo…

Obrigada :smiley: