Galera gostaria de saber se alguem tem uma classe que formata real para dolar…
obrigado.
Real para Dolar
13 Respostas
Galera gostaria de saber se alguem tem uma classe que formata real para dolar…
obrigado.
Sim. Currency.
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
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!
double valor1 = 1.1589;
NumberFormat formato = NumberFormat.getCurrencyInstance();
formato.setCurrency(Currency.getInstance("USD"));
formato.setMaximumFractionDigits(5);
System.out.println(formato.format(valor1));
DecimalFormat df = new DecimalFormat("#,###.00000");
System.out.println(df.format(1234.362344));
Cuidado com double para representar valores monetários.
Prefira BigDecimal.
Abraço.
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
Boa, x@andy, melhor ainda :]
Não conhecia o padrão. Valeu!
Abraço.
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! 
Ele contém dezenas de padrões muito uteis.
Obrigado pelo empenho em ajudar !!!
Vou tentar e dou a resposta , se consigo ou n … obrigado. !
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 ???
desse geito aki nao funcionoudouble 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,12000vou 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?
na verdade nem uso double uso BigDecimal , e sao 5 casas depois da virgula …
sera que o fato de ser BigDecimal esta influenciando ?