Duvida em DecimalFormat

3 respostas
christianovale

Pessoal, estou com uma dúvida bem básica:

na tela do meu sistema, um campo chamado “valorTotal” recebe valores tipo: 1.200,50 ou 150,30 e eu preciso transforma-lo em 1200.50 e 150.30 para poder inserir em um campo Decimal do banco de Dados.

Depois preciso fazer o inverso para exibir o valor na tela, ou seja, transformar 1200.50 em 1.200,50

Estou apanhando um pouco desse DecimalFormat.
Alguem poderia me auxiliar?
Obrigado!

3 Respostas

T
import java.text.*;
import java.util.*;

class DecimalFormatTest {
    public static void main(String[] args) throws Exception {
        // Se você não quiser o símbolo de real
        Locale ptBR = new Locale ("pt", "BR");
        DecimalFormatSymbols dfs = new DecimalFormatSymbols (ptBR);
        NumberFormat nf = new DecimalFormat ("#,##0.00", dfs);
        double d = nf.parse ("1.200,50").doubleValue(); // converte para double
        System.out.println (nf.format (d)); // imprime "1.200,50"
        // Se quiser o símbolo de real
        nf = NumberFormat.getCurrencyInstance (ptBR);
        System.out.println (nf.format (d)); // imprime "R$ 1.200,50"
    }
}
christianovale

Ok. Mas, como faço o contrario?

passar 1.455,99 para 1455.99 ??

T

Eu editei o exemplo, veja o exemplo de novo. (Veja a linha que contém a chamada ao método “parse”.)

Criado 16 de agosto de 2006
Ultima resposta 16 de ago. de 2006
Respostas 3
Participantes 2