Formatação de moeda

Bom dia pessoal…

Alguem sabe como eu posso formatar um numero para moeda?

Ex:

De: 1692,8
Para: 1.692,80

Sem cifrao e com 2 casas depois da virgula…

obs: eu tentei com o formatCurrency mas ele poem cifrao…e tentei com formatNumber mas ele nao poem 2 casas depois da virgula…

Desde já agradeço!

Schoker dá uma olhada nesse post aqui do GUJ:

http://www.guj.com.br/posts/list/215186.java

Espero ter ajudado.

Putss…vlww…mas infelizmente nao da…pq eu estou usando J2ME…
:S

Puxa, não tinha visto que era J2ME, nunca programei algo muito específico nele.
Como é em J2ME, tem um artigo na Revista Mundo Java nº 30, essa mais voltada para Java Me.

Um dos artigos se chama “Usando ponto-flutuante em J2ME”.

No código o valor é formatado assim, ficando com duas casa decimais:

//valor é um TextField
totald = Float.parseFloat(valor.getString());
//Fórmula demonstrada na revista
total2c = (double)(int)((totald+0.005)*100.0)/100.0;
//E para exibílo assim em um StringItem chamado total1
tota1.setText(Double.toString(total2c));

Vê se resolve.
Espero ter ajudado.

putss…nao funcionou…
testei com o numero 4800.0…
ele saiu a mesma coisa… :S

mas vlw pela ajuda!! =D

Vou procurar a respeito, se achar te informo.

ok…
vlws!!!

:smiley:

Ninguem mais?! :S

Consegui resolver da seguinte forma:

String val1;

val1 = new Formatter().formatCurrency(Double.parseDouble(itens.getValor()) * Double.parseDouble(itens.getQtde()));
val1 = val1.replace(',', ';').replace('.', ',').replace(';', '.').substring(1, val1.length());

Tive que fazer esse replace pq se nao ele iria imprimir o resultado assim:
Ex:

Sem formatar: $ 2555.60
Com formatação (mas sem o replace): $ 2,555.60
Com formatação e replace: $ 2.555,60

Eh pq o lacale dele eh dos eua…nao descobri como dar um setLocale…entao resolvi com esse replace…

ahh…e o substring no final serve apenas pra tirar o $

=D

[quote]Consegui resolver da seguinte forma:

[code]String val1;

val1 = new Formatter().formatCurrency(Double.parseDouble(itens.getValor()) * Double.parseDouble(itens.getQtde()));
val1 = val1.replace(’,’, ‘;’).replace(’.’, ‘,’).replace(’;’, ‘.’).substring(1, val1.length());

String val1; val1 = new Formatter().formatCurrency(Double.parseDouble(itens.getValor()) * Double.parseDouble(itens.getQtde())); val1 = val1.replace(’,’, ‘;’).replace(’.’, ‘,’).replace(’;’, ‘.’).substring(1, val1.length());
[/code]
Tive que fazer esse replace pq se nao ele iria imprimir o resultado assim:
Ex:

Sem formatar: $ 2555.60
Com formatação (mas sem o replace): $ 2,555.60
Com formatação e replace: $ 2.555,60

Eh pq o lacale dele eh dos eua…nao descobri como dar um setLocale…entao resolvi com esse replace…

ahh…e o substring no final serve apenas pra tirar o $

=D[/quote]

ehhh…nao deu certo rsrs…

dessa forma que eu coloquei ele só funciona pelo netbeans…
ai eu tentei colocar assim no pda e nao funcionou…ele da erro quando chega no “new Formatter…”

o PDA que estou usando é o HTC Touch Diamond…

Pode ser que em outros PDA’s funcione…mas nesse nao deu certo…

tem alguma outra maneira de formatar a moeda?

Vlww!

Vou tentar te dar uma solução… mas sem testar.

[code]
public String retValorPonto (double valor) {
String valorPonto = “”;

valor = valor * 100;
String temp = (int) valor;
for (int i = 0; i < vlr.length; i++){
if (vlr.length == i+3)
valorPonto+=".";
valorPonto+=""+vlr.charAt(i);
}
return valorPonto;
}[/code]

rode lá pra ver se funciona. Não fiz tratamento para o caso de valores que sejam menores que R$1,00

abraços.