Passar valor de um BigDecimal para String

Amigos tenho o seguinte codigo, e quero ao clicar no botao que seja apresentado o resultado em um jOptionPane

 BigDecimal valor = ((BigDecimal) jFormattedTextField1.getValue()).add(new BigDecimal(100));

Alguem poderia ajudar. obrigado.

Pq vc está fazendo o cast do valor retornado pelo seu field diretamente para BigDecimal?

Se a string estiver vindo com pontos (por exemplo, “23.4”), você pode simplesmente chamar o construtor de BigDecimal que aceita string.

Se a string estiver vindo com vírgulas (por exemplo, “2.345,67”), você pode fazer uma de duas coisas:

  • Remover os pontos e trocar as vírgulas por pontos, e chamar o construtor de BigDecimal que aceita String;
  • Ou fazer isto aqui:
DecimalFormat nf = new DecimalFormat ("#,##0.##", new Locale ("pt", "BR"));
nf.setParseBigDecimal (true);
BigDecimal bd = (BigDecimal) nf.parse ("2.345,67");

Lembre-se que o código acima funciona só a partir do Java 5.0.

.

[quote=thingol]Se a string estiver vindo com pontos (por exemplo, “23.4”), você pode simplesmente chamar o construtor de BigDecimal que aceita string.

Se a string estiver vindo com vírgulas (por exemplo, “2.345,67”), você pode fazer uma de duas coisas:

  • Remover os pontos e trocar as vírgulas por pontos, e chamar o construtor de BigDecimal que aceita String;
  • Ou fazer isto aqui:
DecimalFormat nf = new DecimalFormat ("#,##0.##", new Locale ("pt", "BR"));
nf.setParseBigDecimal (true);
BigDecimal bd = (BigDecimal) nf.parse ("2.345,67");

Lembre-se que o código acima funciona só a partir do Java 5.0.[/quote]

thingol,

Muito legal essa sua dica do setParseBigDecimal, porém se eu quiser fazer o processo inverso, pegar um BigDecimal e jogar para uma String com pontos e vírgulas ?

Muito obrigado.

nao entendi pq deu errro…


RSSS…
bem aqui consegui, agora se precisar fazer calculos …
esse valor + 100
esse valor - 100
esse valor / 100
esse valor * 100
??

o codigo me esqueci…

try { DecimalFormat nf = new DecimalFormat("#,##0.##"); nf.setParseBigDecimal(true); BigDecimal bd = (BigDecimal) nf.parse(jFormattedTextField1.getText()); JOptionPane.showMessageDialog(null, bd); } catch (ParseException ex) { Logger.getLogger(tela2.class.getName()).log(Level.SEVERE, null, ex); }