Bom Dia a todos, eu to com muita dificuldade em transforma uma variavel

Eu estou criando um relatório no ireport, e preciso tirar a porcentagem de um determinado valor, e fiz da seguinte forma: criei uma variável e adicionei a seguinte expressão [ (($F{COMISSAO}.divide($F{BASE_CALC})).multiply(new java.math.BigDecimal(100))) ], mas me da o um errro : “Non-terminating decimal expansion; no exact representable decimal result.”.
Já tentei varias coisas, mais ainda não achei o erro e nem imagino oque poderia ser. Se alguém puder me ajudar ficarei muita grata :blush: .
Obrigada!

Tenta ai divide($F{BASE_CALC}, 2, BigDecimal.ROUND_HALF_UP)

1 curtida

Sua divisão está gerando uma dízima periódica, terá de ajustar como o @Bruno_Macedo orientou:

numero1(numero2, numeroDeCasasDecimais, RoundingMode.ROUND_HALF_UP)

1 curtida

da um erro pior ainda : RoundingMode.ROUND_HALF_UP cannot be resolved
value = (java.math.BigDecimal)(((((java.math.BigDecimal)field_COMISSAO.getValue()).divide(((java.math.BigDecimal)field_BASE_CALC.getValue()),2, RoundingMode.ROUND_HALF_UP)).multiply(new java.math.BigDecimal(100)))); //$JR_EXPR_ID=23$

Eu consegui resolver pelo Select, criei outra fields, e deu certo. Muito pela colaboração! :wink:
@Bruno_Macedo e @staroski

Só pra ficar claro o que aconteceu, faltou o pacote ai na sua declaração, RoundingMode,ROUND_HALF_UP
teria que colocar java.math.RoundingMode.ROUND_HALF_UP ou usar a classe BigDecimal mesmo, java.math.BigDecimal.ROUND_HALF_UP

1 curtida

Isso não é “pior ainda”. :slight_smile:
Só esqueceu um import.

1 curtida