A formatação de valores decimais pode ser feita utilizando uma classe específica fornecida
por Java: DecimalFormat. As classes DecimalFormatSymbols e Locale são
utilizadas para auxiliar na configuração do formato local.
Sintaxe: pacotes
import java.text.DecimalFormat; //Classe
import java.text.DecimalFormatSymbols; //configuração de . e ,
import java.util.Locale;
Sintaxe: pacotes
DecimalFormat()
DecimalFormat(String pattern)
DecimalFormat(String pattern, DecimalFormatSymbols <symbols>)
Onde
pattern: padrão para formatação. ver abaixo
<symbols>: Informação local sobre símbolos (,) e (.)
pattern:
0 – exibe dígito se fornecido, 0 caso contrário
# – exibe dígito se fornecido, nada caso contrário
. – indica onde colocar o separador inteiro
, – indica onde colocar o separador decimal
No exemplo abaixo, o pattern #,##0.00, significa que duas casas decimais e um dígito inteiro
sempre devem ser exibidos. Caso duas ou mais casas inteiras estejam disponíveis serão exibidas
com o separador de milhares ou milhões.
Exemplo 6
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
public class Main
{
public static void main(String[] args) {
Locale meuLocal = new Locale("pt", "BR"); //local
DecimalFormat df = new DecimalFormat("#,##0.00", DecimalFormatSymbols.getInstance(meuLocal));
String formatado = df.format(0.12);
System.out.println(formatado);
formatado = df.format(12.34);
System.out.println(formatado);
formatado = df.format(123.45);
System.out.println(formatado);
formatado = df.format(1234.56);
System.out.println(formatado);
formatado = df.format(12345.67);
System.out.println(formatado);
formatado = df.format(1234567.89);
System.out.println(formatado);
}
}
Saída
0,12
12,34
123,45
1.234,56
12.345,67
1.234.567,89