Problema de precisão em BigDecimal, alguém já viu?

Estou adicionando valores em um bigDecimal, só que ele está me gerando 1 real a mais no caso

tenho 3 bigDecimal valor1, valor2, valor3
cada um vale 50

e um BigDecimal total;

onde adiciono os 3 nele

total = total.add(valor1);
para o valor 2 e 3 repito

quando vou ler

System.out.println(total);

ele gera 151.00
já tentei colocar .doubleValue(), mas gera tb o mesmo valor 151.0

Alguém saberia o pq disso? o q estou fazendo de errado?

[quote=vitorkgb]Estou adicionando valores em um bigDecimal, só que ele está me gerando 1 real a mais no caso

tenho 3 bigDecimal valor1, valor2, valor3
cada um vale 50

e um BigDecimal total;

onde adiciono os 3 nele

total = total.add(valor1);
para o valor 2 e 3 repito

quando vou ler

System.out.println(total);

ele gera 151.00
já tentei colocar .doubleValue(), mas gera tb o mesmo valor 151.0

Alguém saberia o pq disso? o q estou fazendo de errado?[/quote]

Oi, tente colocar 50.00 ao invés de 50 O.o

Tentar???

esse valor é recuperado do banco de dados

valor = valor.add(rs.getBigDecimal("CUSTO"));

o valor no banco está 50.00 já

tá recuperando certo o valor

Amigo, de uma olhada nos dois links

http://www.guj.com.br/java/28887-roundingmode-personalizar-arredondamento

http://download.oracle.com/javase/1.5.0/docs/api/java/math/RoundingMode.html

[]s

Anule tudo q eu disse… completamente burrice minha

eu falando do velho e bom BigDecimal

quando instanciei o big ele colocou e nem percebi

BigDecimal totalGeral = new BigDecimal(BigInteger.ONE);

tava vindo com o 1 já… coloquei 0, já que é obrigado a inicializar com um valor

BigDecimal totalGeral = new BigDecimal(0);