Formatando números com Numberformat

Os principais métodos do NumberFormat são: A classe NumberFormat, faz parte do pacote java.text e permite formatar números conforme a...

A classe NumberFormat, faz parte do pacote java.text e permite formatar números conforme a localização geográfica em que você se encontra, realizando a distinção entre o sinal de ponto,milhar e de decimal, também identifica a posição do sinal do número e identifica o prefixo que indica a moeda em caso de valores monetários.

A Classe

Marcara de formatação Formato impresso Descrição
,##0,00 1,242.50 Separa grupo dos milhares com vírgulas, se número menor que um mostra zeros na frente.
$,##0.00;($,##0.00) ($1,535,50) Números negativos entre parênteses. mostra $
0.##### 1244.5 Se número entre -1 e 1 mostra zero na frente e não mostra zeros no final.
NumberFormat possui três mêtodos para formatar números, valores monetários e percentuais. Para fazer uso dela é necessário importa-la.

import java.text.NumberFormat;

Os principais métodos do NumberFormat são:

Exemplo:

import java.text.NumberFormat; public class Formata { public static void main(String[] args) { System.out.println(NumberFormat.getCurrencyInstance().format(12345678.90)); // imprimirá R$ 12.345.678,90 } }

Agora um exemplo para uma situação em que se há muitos números a serem formatados.

import java.text.NumberFormat; public class Formata2 { public static void main(String[] args) { double n[]={523.34, 54344.23 ,95845.223 ,1084.895}; NumberFormat z = NumberFormat.getCurrencyInstance(); for (int a = 0; a < n.length; a++) { if(a != 0) System.out.print(", "); System.out.print(z.format(n[a])); } System.out.println(); /* Imprime: R$ 523,34, R$ 54.344,23, R$ 95.845,22, R$ 1.084,90 */ } }

Ainda é possível criar uma formatação personalizada utilizando o objeto DecimalFormat. Por exemplo:

import java.text.DecimalFormat; public class Formata { public static void main(String[] args) { double valor = 2000.0; double vezes = 3.0; double prestacao = valor/vezes; DecimalFormat df = new DecimalFormat("0.##"); String dx = df.format(prestacao); System.out.print(dx); } // sera impresso : 666,67 }

Algumas strings de formatação que podem ser utilizadas com o Decimal Format

Marcara de formatação Formato impresso Descrição
,##0,00 1,242.50 Separa grupo dos milhares com vírgulas, se número menor que um mostra zeros na frente.
$,##0.00;($,##0.00) ($1,535,50) Números negativos entre parênteses. mostra $
0.##### 1244.5 Se número entre -1 e 1 mostra zero na frente e não mostra zeros no final.

É importante lembrar que DecimalFormat não é adequada para formatar notações científica, tabelas com colunas de largura fixa e nem números em formato hexadecimal ou octal.

Artigos relacionados