Campo Double, formatação.......?


Pessoal, preciso aprender a formatar um campo que vai receber um valor monetário, no campo ai de cima foi digitado o valor 800, depois que eu gravo fica esse monte de zeros, é um campo Double, no BD access ta como monetário, não consigo formatar através do JFormattedText…
Se alguem puder ajudar, agradeço.
abraço :shock:

NumberFormat nf = new DecimalFormat("0.00");
System.out.println(nf.format(suaVariavelDouble));

pode tentar este aqui também…

NumberFormat nf = new DecimalFormat("#,###.00"); System.out.println(nf.format(n));

espero que ajude…

[]'s

obrigado pela ajuda, mas esta dando erro, é assim mesmo que eugravo no banco esse campo formatado?

try { String sqlinsert = "insert into notas (nome,cidade,valor,data,descricao,estado)values ('" + nfnome.getText() + "','" + nfcidade.getText() + "','" + (nf.format( nfvalor.getText())) + "','" + nfdata.getText() + "','" + nfdescricao.getText()+ "','" + nfestado.getSelectedItem() + "')"; conectanota.statement.executeUpdate(sqlinsert);

o campo a qual me refiro é o nfvalor

Qual erro está dando?

da um exception…

Então, po. Cola ai :slight_smile:

Verifique se você não está tentando inserir o valor utilizando virgula como separador.

Acredito que o BD aceite apenas ponto…

tente algo parecido:

try { String sqlinsert = "insert into notas (nome,cidade,valor,data,descricao,estado)values ('" + nfnome.getText() + "','" + nfcidade.getText() + "','" + nf.format( nfvalor.getText()).replaceAll(",",".") + "','" + nfdata.getText() + "','" + nfdescricao.getText()+ "','" + nfestado.getSelectedItem() + "')"; conectanota.statement.executeUpdate(sqlinsert);

[]'s

É… Pode ser o negócio dos pontos mesmo. BD aceita formato americado (ponto). Acho que esse seria esse o caso mesmo se ele definiu o campo como númerico.

Outro ponto importante a ser considerado é com relação ao tipo da coluna, que neste caso, deveria ser do tipo DECIMAL(x,2)

esta solução parece funcionar…

[code]
NumberFormat nf = new DecimalFormat(“0.00”);

try { String sqlinsert = “insert into notas (nome,cidade,valor,data,descricao,estado)values (’” +
nfnome.getText() + “’,’” +
nfcidade.getText() + “’,’” +
nf.format( nfvalor.getText()).replaceAll(",",".") + “’,’” +
nfdata.getText() + “’,’” +
nfdescricao.getText()+ “’,’” +
nfestado.getSelectedItem() + “’)”;
conectanota.statement.executeUpdate(sqlinsert);[/code]

Qualquer coisa posta as exceptions que fica mais fácil ajudar!

[]'s

 throw new IllegalArgumentException("Cannot format given Object as a Number");

da esse erro…

tem o Padrão Money que vc pode usar… isso c kizer precisão e não quiser perder grana =x …

mais informações http://sergiotaborda.wordpress.com/java/patterns/money/

e se vc não quiser , vc pode guardar em centavos no banco, assim fica sem o uso de pontos flutuantes

nfvalor.setText(nf.format(Double.parseDouble(nfvalor.getText())));

beleza pessoal funcionou…mostrei os dados dessa forma ai…

Obrigado :lol: