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));
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…
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