Duvida NumberFormat

Boa Tarde,

Estou com o seguinte código

[code] BigDecimal valorExato = new BigDecimal(resultado).setScale(2, RoundingMode.HALF_DOWN);

        Locale l = new Locale("pt", "BR");
        NumberFormat nf = NumberFormat.getCurrencyInstance(l);
        txtTotalDezCent.setText(String.valueOf(nf.format(valorExato)));[/code]

mas quando tento gravar no banco não grava ele esta tentando gravar com R$ e com virgula como
faço para resolver isso ??

qual o tipo do dado no seu banco?

No banco esta como DECIMAL 14,2

Então você não tem que formatar nada pra persistir no banco, pode gravar o objeto diretamente.

Você está convertendo um número para uma String para tentar persistir como número, entendeu?

[quote=Rodrigo Sasaki]Então você não tem que formatar nada pra persistir no banco, pode gravar o objeto diretamente.

Você está convertendo um número para uma String para tentar persistir como número, entendeu?[/quote]

Então mas eu preciso que apareça o número corretamente para o usuario exemplo R$ 1,99

Então, quando você for mostrar pro usuário você usa o NumberFormat, quando for persistir não.

Como faço isso ? se não for pedir muito monta um exemplinho…

Por que funciona assim na hora de passar para o banco ele pega o valor que esta aparecendo no jtextfield R$ 1,99

não tem muito como exemplificar.

Você tem uma classe que se relaciona com o seu DB, talvez até uma Entity se estiver usando JPA, nessa camada do sistema seus valores numéricos são sempre números. Quando esse valor for para a sua view, e só nesse momento, você formata ele pra uma String

Ah, entendi. Então você pode fazer o parse do valor:double valor = nf.parse(jtextfield.getText());

[quote=Rodrigo Sasaki]não tem muito como exemplificar.

Você tem uma classe que se relaciona com o seu DB, talvez até uma Entity se estiver usando JPA, nessa camada do sistema seus valores numéricos são sempre números. Quando esse valor for para a sua view, e só nesse momento, você formata ele pra uma String[/quote]

é nesse parte do código que ele passa os dados para o banco

classebean.setTotal10Cent(new BigDecimal(txtTotalDezCent.getText().trim()).setScale(2, RoundingMode.HALF_DOWN));

a hora que vai para ela já esta com o R$

O parse não funcionou?

Da esse erro

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException at java.math.BigDecimal.<init>(BigDecimal.java:470) at java.math.BigDecimal.<init>(BigDecimal.java:739)

Você está usando o mesmo NumberFormat que usou pra formatar?[code] public static void main(String[] args) throws ParseException {
NumberFormat nf = NumberFormat.getCurrencyInstance(new Locale(“pt”, “BR”));

    String formattedText = nf.format(100.45);
    System.out.println(formattedText);           // Imprime 'R$ 100,45'
    System.out.println(nf.parse(formattedText)); // Imprime '100.45'
}[/code]