DecimalFormat no linux

2 respostas
V

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

2 Respostas

T

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"
    }
}
V

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

Criado 19 de outubro de 2006
Ultima resposta 19 de out. de 2006
Respostas 2
Participantes 2