Formatando Números com Java

Veja neste artigo para iniciantes : como formatar números com Java

Formatando Números com Java

Extraído do site: www.portaljava.com

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");
      }
   }
}
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados