wender
Fevereiro 4, 2004, 8:40am
#1
Galera eu precisando formatar meus números. Tenho uma aplicação que busca dados de um banco sql server 6.5 e me retorna valores do tipo 2132.00. Preciso que ele fique no formato 2.132,00.
Outros exemplos:
O que tenho Como preciso
1.3 1,30
3670.0 3.670,00
Como posso fazer isso? Tive olhando a classe NumberFormat do pacote java.text, mas não entendi muito bem. Alguém pode me dar uma ajuda?
[code]import java.text.NumberFormat;
NumberFormat formatter = NumberFormat.getCurrencyInstance();
System.out.println(formatter.format(1.3));[/code]
[]'s
wender
Fevereiro 4, 2004, 9:33am
#3
…mas e no lugar de 1.3 eu coloar 1.30, mesmo assim a saída fica com 1.3…preciso que fique 1,30. O símbolo de R$ não é necessário
Então use a classe java.text.DecimalFormat:
[code]import java.text.DecimalFormat;
Format formatter = new DecimalFormat("###,###,##0 .00");
System.out.println(formatter.format(1.30));[/code]
Mais info aqui:
http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html
[]'s
wender
Fevereiro 4, 2004, 9:50am
#5
beleza, só tive que alterar essa linha aí, pois preciso passar um Object pra ele
System.out.println(formatter.format(new Double(1.30)));
Valeu, obrigado.
wender
Fevereiro 4, 2004, 10:35am
#6
Encontrei um erro, ou melhor, uma coisa que não pode acontecer…ele está arredondando. Se eu fizer:
Format formatter = new DecimalFormat("###,###,##0 .00");
System.out.println(formatter.format(new Double(“0.075889”)));
O retorno será 0.08 e não pode. Tem como corrigir isso?
wender:
Tem como corrigir isso?
Aumente o número de casas decimais no padrão que você definiu quando criou o DecimalFormat.
wender
Fevereiro 4, 2004, 11:03am
#8
ok…não tinha me atentado pra isso