Olá galera, estou pegando um valor do tipo double do meu bd só que ele está uma coisa no bd e quando eu vou exibi-lo na minha página ele da o valor aproximado. por exemplo se o valor for 33.3 ele retorna 33.300000000000004 bom com resolvo isso? e pq esta acontecendo?
eu pego o valor do bd com rs.getDouble
Double arredondando errado
5 Respostas
mas qaundo vc add no banco ele fica como?33.3?
Bom dia Eduardo.
Uma solução é utilizar a classe DecimalFormat, conforme exemplo abaixo:
double valor = 33.300000000000004;
NumberFormat nf = new DecimalFormat("0.00");
System.out.println(nf.format(valor));
Verifique que o método format retorna um String.
Caso necessite realizar cálculos financeiros ou uma grande precisão, recomendo utilizar a classe BigDecimal para resgatar estes valores do banco de dados.
Até mais!
sim fica, eu add até pelo bd mesmo fui na tabela, na linha e adicionei o 33,3 (para testar se ia dar alguma diferença) e conferi, ainda sim fica o mesmo valor 33,000…
blz…mas se vc add pelo sistema e ele ficar 33.3…entao usa essa solução ai que o mtosatti deu…se nao posta ai qual SGBD vc ta usando…
opa galera resolvido, valew a ajuda, só que eu queria entender o pq aconteceu isso, mas ja ta resolvido valew a força galera