Formatando N�meros com Java

Para formatar n�meros com Java voc� pode utilizar a classe 
java.text.DecimalFormat.

Uma das alternativas � utilizar os recursos de internacionaliza��o do Java
permitindo que o formato do n�mero seja configurado automaticamente 
dependendo
do lugar (Locale) onde a aplica��o est� sendo executada. Desta forma o 
separador
de decimais por exemplo, poder� ser um ponto (.) ou uma v�rgula (,).

Uma outra alternativa � especificar a formata��o que voc� deseja para os 
n�meros,
desta forma o mesmo formato ser� usado em qualquer lugar que seja 
executada a sua
aplica��o.

A classe DecimalFormat pode ser configurada para utilizar um modelo de 
formata��o
(Pattern) atrav�s do m�todo applyPattern(String pattern) da classe 
DecimalFormat.
Veja alguns exemplos abaixo:

Pattern        Descricao                      
0              Imprime d�gitos ou zero se vazio 
#              Imprime d�gitos ou espa�o em braco 
.              Separador Decimal 
-              Sinal para n�meros negativos 

Abaixo uma pequena aplica��o de exemplo do uso da classe DecimalFormat e 
Locale.


import java.text.DecimalFormat;
import java.util.Locale;

/**
 *  Exemplo de utilizacao da classe DecimalFormat para formatacao de 
numeros.
 *
 * @author     Handerson Ferreira Gomes
 * @created    June 11, 2002
 */
public class DecimalFormatExample {

   /**
    *  Metodo de execucao da classe DecimalFormatExample
    * @param  args  Um modelo de formatacao para ser utilizado pela 
aplicacao
    */

   public static void main(String[] args) {
      Locale         locale      = Locale.getDefault();
      System.out.println("Este Sistema Operacional usa atualmente as 
seguintes Configuracoes (Default):");
      System.out.println("Pais           : " + locale.getDisplayCountry());
      System.out.println("Lingua/Teclado : " + 
locale.getDisplayLanguage() + " - " + locale.getDisplayName());
      System.out.println("");

      DecimalFormat  formatador  = new DecimalFormat();
      double         valor1      = 235040.30;
      float          valor2      = -235040.30f;
      int            valor3      = 235040;
      String         valor4      = "235040.30";

      System.out.println("Numeros sem formatacao:");
      System.out.println("Valor 1 : " + valor1);
      System.out.println("Valor 2 : " + valor2);
      System.out.println("Valor 3 : " + valor3);
      System.out.println("Valor 4 : " + valor4);
      System.out.println();

      System.out.println("Numeros utilizando a formatacao Default:");
      System.out.println("Valor 1 : " + formatador.format(valor1));
      System.out.println("Valor 2 : " + formatador.format(valor2));
      System.out.println("Valor 3 : " + formatador.format(valor3));
      System.out.println("Valor 4 : " + formatador.format(new 
java.math.BigDecimal(valor4)));
      System.out.println();

      System.out.println("Utilizando o Pattern: R$ 000,000.00;R$ 
(000,000.00)");
      formatador.applyPattern("R$ 000,000.00;R$ (000,000.00)");
      System.out.println("Valor 1 : " + formatador.format(valor1));
      System.out.println("Valor 2 : " + formatador.format(valor2));
      System.out.println("Valor 3 : " + formatador.format(valor3));
      System.out.println("Valor 4 : " + formatador.format(new 
java.math.BigDecimal(valor4)));
      System.out.println();

      if (args.length > 0) {
         String  pattern  = "";
         for (int i = 0; i < args.length; i++) {
            pattern += args[i] + " ";
         }
         pattern = pattern.trim();
         System.out.println("Utilizando o Pattern: " + pattern);
         try {
            formatador.applyPattern(pattern);
            System.out.println("Valor 1 : " + formatador.format(valor1));
            System.out.println("Valor 2 : " + formatador.format(valor2));
            System.out.println("Valor 3 : " + formatador.format(valor3));
            System.out.println("Valor 4 : " + formatador.format(new 
java.math.BigDecimal(valor4)));
         } catch (IllegalArgumentException e) {
            System.out.println("ERRO: Pattern invalido.");
            System.out.println(e.getMessage());
         }
      }
      else {
         System.out.println("Voce pode enviar um pattern como argumento 
para a aplicacao. Ex:");
         System.out.println("java DecimalFormatExample U$ 000.00");
      }
   }
}


Bons c�digos!!!

______________________________________________________________________________________________
Handerson Ferreira Gomes
Summa Technologies
Boletim Dicas Java - Sua dose di�ria de Java.



================================================================
Dicas-Java circula diariamente com pequenas dicas
sobre a plataforma Java e � mantido pela Sociedade de
Usu�rios Java - SOUJAVA (http://www.soujava.org.br)
- Quer contribuir com uma dica sobre Java? Envie um
e-mail para [EMAIL PROTECTED]
- Participe de outras listas de discuss�o sobre a linguagem Java.
Saiba mais em http://www.soujava.org.br/lista.htm
------------------------------------------------------------------
- Para assinar este boletim envie um e-mail para [EMAIL PROTECTED]
- Para cancelar sua assinatura envie um e-mail para 
[EMAIL PROTECTED]
- O hist�rico das Dicas-List pode ser encontrado em 
http://www.mail-archive.com/dicas-list%40soujava.org.br




Responder a