Oi Pessoal, não sei se devia postar isto aqui, mas ai vai:
Na empresa em que trabalho, estou usando a classe DecimalFormat para formatar números. É uma aplicação web com struts e tal, mas isso acho que não vem ao caso.
O problema é o seguinte:
Quando aplico o pattern para formatar o número da seguinte forma:
decimalFormat.applyPattern("###,#00.00");
funciona bem no windows, mas quando coloco a aplicação no servidor que é linux não funciona, os números ao inves de aparecerem 10,00 por exemplo aparecem 10.00 e isso não é legal para o que quero.
Não sei porque isso acontece, acho que não deveria acontecer, alguem tem alguma idéia de como resolver isso, ou do porque isso acontece?
Obrigado
Isto deve funcionar igual no Windows e no Linux. Teste, por favor.
import java.text.*;
import java.util.*;
class DecimalFormatTest {
public static void main(String[] args) throws Exception {
// Se você não quiser o símbolo de real
Locale ptBR = new Locale ("pt", "BR");
DecimalFormatSymbols dfs = new DecimalFormatSymbols (ptBR);
NumberFormat nf = new DecimalFormat ("#,##0.00", dfs);
double d = nf.parse ("1.200,50").doubleValue(); // converte para double
System.out.println (nf.format (d)); // imprime "1.200,50"
// Se quiser o símbolo de real
nf = NumberFormat.getCurrencyInstance (ptBR);
System.out.println (nf.format (d)); // imprime "R$ 1.200,50"
}
}
Funcionou sim!!
Valeu!!
Acho que já sei o que aconteceu, no windows o Locale estava correto, Portugues, Brasil, etc. No linux talvez nao estivesse.
Obrigado thingol!
Abraços