Formatar moeda no Red Hat

3 respostas
A

Olá pessoas,

Estou tentando resolver um pequeno problema de formatação da moeda no Java estou usando a jdk 1.6 _06 a com uma aplicacao J2EE.
Aqui na Empresa estou usando S0 Windows XP e funciona normal a sua saida fica dessa forma : 1.700,00 (correta)
Mas qdo uso no Linux Red Hat a sua formatacao fica da seguinte forma : 1,700.00 o locale disso é Ingles.
Foi sugerido a alteracao no proprio Linux para Portugues acho que isso resolveria o problema , mas existe uma forma de fazer esse tratamento aqui na minha classe segue a classe em questao :

public class ClienteSuspeito {

      gets e sets 

         public BigDecimal getValorPatrimonio() {
        return valorPatrimonio;
    }
        public void setValorPatrimonio(BigDecimal valorPatrimonio) {
        this.valorPatrimonio = valorPatrimonio;
    }

     Aqui o metodo que criei que trata ! 


   public String getValorPatrimonioFormatado() {
		if (valorPatrimonio == null)
		return "0,00";
 NumberFormat df = NumberFormat.getCurrencyInstance(new Locale("pt", "BR")); 
//DecimalFormat df = new DecimalFormat("#,##0.00");
		return df.format(valorPatrimonio);
		
    }
     Entao havia instanciado a classe DecimalFormat  por isso está comentado mas não funcionou ! 
     Alguem  passou por isso ? 

    Aguardo resposta  ! 

 }

Adriana Cardoso

3 Respostas

T

Se sua aplicação for desktop, a maneira mais simples é ajustar o Locale o mais rápido possível na sua aplicação:

public static void main(String[] args) {
    Locale.setDefault (new Locale ("pt", "BR"));
    ... resto do seu programa ...
}

Se for web, aí você precisa passar um parâmetro adequado no início do sistema. O que você usa como servidor J2EE? JBoss? OAS? WebSphere?

A

Sobre o Conteiner usamos o Tomcat 5.5 , entao dessa forma já usei aqui e nao funcionou …

A

Olá eu fiz dessa forma e funcionou :

public String getValorPatrimonioFormatado() {
		if (valorPatrimonio == null)
			return "0,00";
		DecimalFormatSymbols symbols = new DecimalFormatSymbols(new Locale("pt", "BR")); 
		DecimalFormat decimalFormat = new DecimalFormat("##,###,###,##0.00", symbols);
        return decimalFormat.format(valorPatrimonio);

    }
Obrigada
Criado 10 de abril de 2007
Ultima resposta 11 de abr. de 2007
Respostas 3
Participantes 2