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"); } } }