Ponto ou virgula ? socorro!

1 resposta
A

pessoal, usei o seguinte codigo para formatar a saida em um jtextfield :

java.text.DecimalFormat decimal = new java.text.DecimalFormat("#,###,###.00");
        javax.swing.text.NumberFormatter numFormatter = new javax.swing.text.NumberFormatter(decimal);
        numFormatter.setFormat(decimal);
        numFormatter.setAllowsInvalid(false);
        jfttf_11.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(numFormatter));
        jfttf_11.setHorizontalAlignment(javax.swing.JTextField.TRAILING);

funcionou legal, um exemplo de saida foi 1.222,95. Mas preciso fazer calculos com esses valores, ai tem um problema, ta dando um erro porque o separador de decimais é uma virgula e nao um ponto.
alguem sabe como resolver isso ?

esse é o erro :

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "5,5"

quando troco manualmente a virgula pelo ponto, nao da o erro.

1 Resposta

J

Olá,

Como você está fazendo para converter o texto para número?

Se você estiver usando Float.parseFloat, ou algo assim, acho que não irá funcionar pois ele depende do locale da sua máquina para converter de string para float, e como você mudou o pattern de formatação o jeito de conversão é diferente.

Acho que se você fizer algo assim deve funcionar:

java.text.DecimalFormat decimal = new java.text.DecimalFormat("#,###,###.00"); 
Number valor = decimal.parse(valorDoCampoEmString);

Espero que isto te ajude…
Abraços…

Criado 27 de dezembro de 2006
Ultima resposta 28 de dez. de 2006
Respostas 1
Participantes 2