subistituição -> moeda

5 respostas
D

tenho um campo float, monetário, no dp que deve ser exibido em brasileiro, ou seja, de 345.10 tem que ir para 345,10
E depois para salvar tem que fazer o inverso.

Acho que um simples replace no . pela , e vice verça funcionária… alguém pode me ajudar ai?

5 Respostas

B

double numero = 345.10;
String s = NumberFormat.getCurrencyInstance(new Locale(“pt”, “BR”)).format(numero);

D

putz, pior que do float pro br eu já tinha conseguido, o problema é do br pro float!

rodrigues.danilo

Bom dia.

Se eu puder dar uma dica sobre a manipulação de moeda (bufunfa), eu diria para você utilizar BigDecimal ao invés de tipos como double e float. E ao utilizar BigDecimal, utilize o construtor de String. Vou te mostrar um exemplo do porquê disto:

public class Change {

    public static void main(String args[]) {

        System.out.println(2.00 - 1.10);

    }

}

Este exemplo foi tirado do livro "Professional Java Puzzlers: Traps Pitfalls and Corner Cases". E o que eu disse foi com base neste livro também.

Abs!

B

Uai, é só voltar usando a mesma classe:

String s = aquele número lá de cima

double numero = [url=http://java.sun.com/javase/6/docs/api/java/text/NumberFormat.html#parse(java.lang.String)]NumberFormat.parse/url.doubleValue();

D

Ta dando erro na linha

double numero = NumberFormat.parse(s).doubleValue();

String sv = (String)(tbl_etapas.getValueAt(i,2));
               double dv = NumberFormat.parse(sv).doubleValue();

:178: non-static method parse(java.lang.String) cannot be referenced from a static context

Criado 15 de maio de 2008
Ultima resposta 15 de mai. de 2008
Respostas 5
Participantes 3