Real para Dolar

13 respostas
juliocesarsrosa

Galera gostaria de saber se alguem tem uma classe que formata real para dolar…
obrigado.

13 Respostas

x111

juliocesarsrosa:
Galera gostaria de saber se alguem tem uma classe que formata real para dolar…
obrigado.

Sim. Currency.

juliocesarsrosa

Ja tentei soh que o problema é que a currency para dolar formata asssim ###,###,###.## e eu precisava com 5 casas depois do ponto como faço ??

eu preciva assim ###,###,##0.00000

obrigado

x111

juliocesarsrosa:
Ja tentei soh que o problema é que a currency para dolar formata asssim ###,###,###.## e eu precisava com 5 casas depois do ponto como faço ??

eu preciva assim ###,###,##0.00000

obrigado

Humm… o problema é que Currency usa ISO 4217, ou seja você está fugindo padrão. Você vai ter que formartar um valor Double manualmente. Aqui no GUJ tem isso só coloca formatação double que deve aparecer!

x111
Agora me ocorreu que você pode usar NumberFormat, exemplo:
double valor1 = 1.1589;

		NumberFormat formato = NumberFormat.getCurrencyInstance();
		formato.setCurrency(Currency.getInstance("USD"));
		
		formato.setMaximumFractionDigits(5);
		System.out.println(formato.format(valor1));
magnojg

DecimalFormat df = new DecimalFormat("#,###.00000");
System.out.println(df.format(1234.362344));

erictorti

Cuidado com double para representar valores monetários.

Prefira BigDecimal.

Abraço.

x111

erictorti:
Cuidado com double para representar valores monetários.

Prefira BigDecimal.

Abraço.


Na verdade eu acho melhor usar o padrão Money do Fowler: http://martinfowler.com/eaaCatalog/money.html

erictorti

Boa, x@andy, melhor ainda :]

Não conhecia o padrão. Valeu!

Abraço.

x111

erictorti:
Boa, x@andy, melhor ainda :]

Não conhecia o padrão. Valeu!

Abraço.

Esse padrão é de grande utilidade, principalmente para fazer rateio de valores evitar problemas com tipos em ponto flutuante.

Só que não me agradeça e sim ao Fowler comprando o livro dele, Padrões de Projeto de Aplicações Corporativas! :smiley:

Ele contém dezenas de padrões muito uteis.

juliocesarsrosa

Obrigado pelo empenho em ajudar !!!

Vou tentar e dou a resposta , se consigo ou n … obrigado. !

juliocesarsrosa

desse geito aki nao funcionou

double valor1 = 1.1589;   
  
NumberFormat formato = NumberFormat.getCurrencyInstance();   
formato.setCurrency(Currency.getInstance("USD"));   
  
formato.setMaximumFractionDigits(5);   
System.out.println(formato.format(valor1));

estou fazendo assim

DecimalFormat df = new DecimalFormat("#,###.00000");

Nao estou conseguindo galera … ateh consigo que ele venha no formato de 6 casas depos da virgula
porem ele soh traz dois numeros depois da virgula e os outros 3 ele completa com 0 pq A classe Currency soh enxerga dois numeros depois da virgula
logo se eu inserir um valor assim : 1.321,12365 quando for recuperar ele me trará assim 1.321,12000

vou ver o que faço agora algm tem uma ideia ???

x111

juliocesarsrosa:
desse geito aki nao funcionou

double valor1 = 1.1589;   
  
NumberFormat formato = NumberFormat.getCurrencyInstance();   
formato.setCurrency(Currency.getInstance("USD"));   
  
formato.setMaximumFractionDigits(5);   
System.out.println(formato.format(valor1));

estou fazendo assim

DecimalFormat df = new DecimalFormat("#,###.00000");

Nao estou conseguindo galera … ateh consigo que ele venha no formato de 6 casas depos da virgula
porem ele soh traz dois numeros depois da virgula e os outros 3 ele completa com 0 pq A classe Currency soh enxerga dois numeros depois da virgula
logo se eu inserir um valor assim : 1.321,12365 quando for recuperar ele me trará assim 1.321,12000

vou ver o que faço agora algm tem uma ideia ???

Porque não funcionou? Aqui eu rodo e ele mostra o valor perfeitamente!. Muito estranho! Com quantas casas está esse valor double?

juliocesarsrosa

na verdade nem uso double uso BigDecimal , e sao 5 casas depois da virgula …

sera que o fato de ser BigDecimal esta influenciando ?

Criado 24 de janeiro de 2011
Ultima resposta 26 de jan. de 2011
Respostas 13
Participantes 4