Arredondamento (de decimais) de Double indevido  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
Rafael Rossignol
Java Ninja
[Avatar]

Membro desde: 17/02/2004 09:26:58
Mensagens: 259
Offline

As vezes acontecia e eu não dava bola.

Agora peguei o erro e com certeza posso dizer.
No java está tudo ok, na hora q busco alguns valores do banco pra uma propriedade Double (wrapper) ele joga na tela tudo bonitão
Quando vou inserir esses valores numa outra tabela (comando insert)
ele arredonda pra cima (tirando os decimais)
Tipo 140,53 vira 141

Pelo amor de Deus, alguém já viu isso acontecer?

O banco de dados é Oracle

"A Imaginação é mais importante que o Conhecimento"
Albert Einstein
[Email] [ICQ]
fanama
JavaTeenager

Membro desde: 21/05/2007 16:32:57
Mensagens: 176
Localização: Socorro - SP
Offline

Debugando o codigo, o que está chegando no método do insert?

Ex:. ps.setDouble(1, seuAtributo).

Só para saber se o problema está no banco ou no método da classe.

Como está o campo da nova tabela no oracle?

Att.

Marco A.

"A boca fala do que está cheio o coração"
[Email] [MSN]
dudaskank
GUJ Ranger
[Avatar]
Membro desde: 12/09/2003 14:59:26
Mensagens: 850
Localização: Suzano, SP, Brasil
Offline

Isso, ou debug ou pelo menos um log, nem que seja um system.out.println() antes de colocar.

bem, precisa ver se o tipo no banco de dados suporta essas casas decimais também.

Outra coisa, recomendo trocar o Double pelo BigDecimal, para fazer contas é mais confiável do que qualquer número que usa ponto flutuante....

abraços

Eduardo Oliveira

Toque a balada do amor inabalável, eterna love song de nós dois...

Página
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

O campo na tabela é mesmo double?
Como você está fazendo seu insert?

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Rafael Rossignol
Java Ninja
[Avatar]

Membro desde: 17/02/2004 09:26:58
Mensagens: 259
Offline

Não tem como eu debugar, esse sistema roda faz 3 anos.
Utiliza ibatis, nunca da problema em desenvolvimento e raramente da em produção.

Ai os usuarios relataram o problema, fiz o teste em produção e em tela aparece tudo ok, na hora de buscar os dados da tabela de preço do banco de dados, traz o preço corretamente.
Na hora que insiro o pedido no sistema. Faço uma query e o número está errado.

Parei o JBoss da produção e subi de novo, o problema parou de acontecer.

Agora estou providenciando a atualização do driver JDBC e da JDK do servidor, acreditando que possa ser isso.
Além disso posso controlar esse erro especificamente com uma trigger no banco de dados (que é o que vou fazer pra tentar garantir um pouco), porém não tenho como ter certeza se essa solução resolverá o problema.

Achei que poderia ser um bug conhecido, mas não encontrei nada no google.

"A Imaginação é mais importante que o Conhecimento"
Albert Einstein
[Email] [ICQ]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team