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

12 respostas
Jrmanzini


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:

12 Respostas

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

pode tentar este aqui também…

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

espero que ajude…

[]'s

Jrmanzini

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

Kura

Qual erro está dando?

Jrmanzini

da um exception…

Kura

Então, po. Cola ai :slight_smile:

K

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

Kura

É… 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.

K

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...

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);

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

[]'s

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

da esse erro…

Lavieri

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

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

beleza pessoal funcionou…mostrei os dados dessa forma ai…

Obrigado :lol:

Criado 23 de março de 2009
Ultima resposta 23 de mar. de 2009
Respostas 12
Participantes 4