2
respostas

Percentual no Jasper Studio

$V{totalresultado}.divide($V{receita}, 2 , RoundingMode.HALF_UP).multiply(new java.math.BigDecimal("100"))

Estou com esse codigo no Jasper, ele até funciona para outras divisões, mas já para percetual quando divide as duas variaveis que fica por exemplo: 0,35, ai ele aproxima para 0, porque é menor que 0,5 e não serve para percentual. Como faço para que esse calculo fique com essas duas casas decimais certinho?

2 respostas

Consegui fazer isso no proprio codigo SQL


CASE 
  WHEN SUM(receita) > 0 THEN ROUND(SUM(receita) + SUM(despesa) / SUM(receita) * 100, 2)
  ELSE 0 
END AS margem

Olá, Fernando!

Pelo que entendi, você está tendo problemas com a aproximação do resultado de um cálculo de percentual no Jasper Studio. Para garantir que o resultado seja exibido com duas casas decimais, você pode utilizar a função setScale da classe BigDecimal.

Aqui está um exemplo de como você pode adaptar o seu código para obter o resultado desejado:

$V{totalresultado}.divide($V{receita}, 2, RoundingMode.HALF_UP)
                  .multiply(new java.math.BigDecimal("100"))
                  .setScale(2, RoundingMode.HALF_UP)

Nesse exemplo, a função setScale(2, RoundingMode.HALF_UP) define que o resultado deve ter duas casas decimais e utilizar o método de arredondamento HALF_UP.

Espero que isso resolva o seu problema! Se tiver mais alguma dúvida, é só me dizer. Espero ter ajudado e bons estudos!