Ponto flutuante[RESOLVIDO]

2 respostas
R

Oi, preciso realizar um calculo de uma lista de itens, onde tenho um metodo que calcula o valor por item. Quando mostro a lista com o valor de cada item esta tudo certo, mas quando vou realizar a somatoria total, resulta em uma pequena diferença. Percebi que a diferença acontece por causa do arredondamento. Existe uma forma de considerar apenas duas casas decimais? Valeu!!!

2 Respostas

maxmustang

use BigDecimal
nunca double :smiley:
http://blog.caelum.com.br/2010/07/15/arredondamento-no-java-do-double-ao-bigdecimal/

R

Valeu, fiz aqui, acho que ficou meio gambiarra mas tudo bem. Para quem quiser, ta aí o código…

BigDecimal big1 = new BigDecimal(""+valor);  
BigDecimal big2 = new BigDecimal("0");  
Float sa = new Float(big1.add(big2).setScale(2,2).floatValue());
Criado 11 de agosto de 2010
Ultima resposta 11 de ago. de 2010
Respostas 2
Participantes 2