Baixe o app para aproveitar ainda mais
Prévia do material em texto
NumberFormat - PROFESSOR: EDIBERTO MARIANO PROGRAMAÇÃO I – PROF. EDIBERTO MARIANO 1 Métodos da Classe java.text.NumberFormat: - A classe NumberFormat do pacote java.text (é necessário importar este pacote) possui três métodos para formatar números, valores monetários e valores percentuais. A localização é o conjunto de propriedades específicas de cada país sobre strings e números, como símbolo de moeda, separador decimal, etc. Para obter um formatador para a localização padrão, use: NumberFormat.getNumberInstance()//Números NumberFormat.getCurrencyInstance() //Moeda NumberFormat.getPercentInstance() //Percentual o static NumberFormat getNumberInstance() //retorna um objeto NumberFormat para formatar números usando as convenções locais. //Podemos especificar o número minimos e máximo de dígitos inteiros ou fracionários import java.text.NumberFormat; Este pacote é necessário ser importado //Podemos especificar o número minimos e máximo de dígitos inteiros //ou fracionários import java.text.NumberFormat; public class Ex02 { public static void main(String[] args) {double x = 10000.0/3.0; NumberFormat nf = NumberFormat.getNumberInstance(); //O ultimo dígito é arredondado para cima se for maior ou igual a cinco nf.setMaximumFractionDigits(2); //string "3.333,33" // nf.setMinimumFractionDigits(1); //string "3.333,333" // nf.setMinimumIntegerDigits(6);//string "003.333,33" nf.setMinimumIntegerDigits(0); String fx = nf.format(x); //string "3.333,33" System.out.println("Valor formatado" +fx); }} Resposta: Valor formatado = 003.333,33 NumberFormat.getCurrencyInstance() //Moeda Retorna um objeto NumberFormat para converter valores de moeda em strings usando as convenções locais. import java.text.NumberFormat; public class Ex04 { public static void main(String[] args) {double x = 10000.0/3.0; NumberFormat nf = NumberFormat.getCurrencyInstance(); NumberFormat - PROFESSOR: EDIBERTO MARIANO PROGRAMAÇÃO I – PROF. EDIBERTO MARIANO 2 String fx = nf.format(x); //string "R$ 3.333,333" System.out.println("Valor formatado = " +fx); }} Resposta: Valor formatado = R$ 3.333,33 OBS.: É possível também criar uma formatação pessoal através do objeto DecimalFormat import java.text.DecimalFormat; //Este pacote é necessário ser importado public class Ex03 { public static void main(String[] args) {double x = 10000.0/3.0; DecimalFormat df = new DecimalFormat("###,###.##"); String dx = df.format(x); // String "33.333,33" System.out.println("Valor formatado =" +dx);}} Resposta: Valor formatado = 33.333,33 Tabela com os caracteres que podem ser usados no DecimalFormat: Símbolo Significado 0 Um dígito # Um dígito; não mostra se for um zero na frente ou no fim. . (ponto) Localização de separador decimal , (vírgula) Localização de separador de grupo ; (pto. e vírgula) Separa formatos de números positivos e negativos - (sinal de menos) Prefixo negativo % (percentual) Multiplica por 100 e mostra na forma percentual Outro símbolo Inclui o símbolo na string de saída Exemplos: String de Formatação Número Explicação ,##0.00 1,234.50 Dois dígitos depois do separador decimal; mostra os zeros na frente. Separa os grupos dos milhares com vírgulas. Se o número for < 1, mostra zeros na frente. $,##0.00;($,##0.00) ($1,234.50) Números negativos entre parênteses em vez de usar o sinal de menos; insere $. 0.###### 1234.5 Se número entre –1 e 1 mostra zero na frente. Não mostra zeros no final. NumberFormat - PROFESSOR: EDIBERTO MARIANO PROGRAMAÇÃO I – PROF. EDIBERTO MARIANO 3 Exemplo: import java.text.DecimalFormat; //Este pacote é necessário ser importado public class Decimal1 { public static void main(String[] args) {double x = 500.0/3.0; DecimalFormat df = new DecimalFormat("0.####"); //EXIBE O RESULTADO COM 4 CASAS //DECIMAIS, PODE ARREDONDAR //EM VEZ DE 166.6666 PARA 166.6667. String dx = df.format(x); // String "166.6667" System.out.println("Valor formatado =" +dx); } } - DecimalFormat funciona bem para formatar valores monetários. Não é adequada para notação científica, tabelas com colunas de largura fixa ou números em formato hexadecimal ou octal. o static NumberFormat getPercentInstance() // retorna um objeto NumberFormat para converter percentuais em strings Pedro recebe 15,00 de um total de 500,00, mostre o valor em real que pedro recebe e o percentual relativo o pagto import java.text.NumberFormat; public class Ex05 { public static void main(String[] args) {double pedro = 15.00; double tot = 500.00; double perc = ((100*pedro)/tot)/100; //exibe o salario de pedro NumberFormat nf = NumberFormat.getCurrencyInstance(); String fx = nf.format(pedro); // String "R$ 100,00" System.out.println("Pagamento de pedro = " +fx); //exibe o percentual (inteiro) NumberFormat df = NumberFormat.getPercentInstance(); String dx = df.format(perc); //string "3%" System.out.println("Percentual = " +dx); }} o void setMaximumFractionDigits(int digitos) NumberFormat - PROFESSOR: EDIBERTO MARIANO PROGRAMAÇÃO I – PROF. EDIBERTO MARIANO 4 Obs. Exemplo já visto antes //Parâmetros: digitos – número de dígitos a exibir; //Especifica o número máximo de dígitos depois do separador decimal do objeto de formatação. O último dígito exibido é arredondado. o void setMaximumIntegerDigits(int digitos) Obs. Exemplo já visto antes //Parâmetros: digitos – número de dígitos a exibir; //Especifica o número máximo de dígitos antes do separador decimal do objeto de formatação. Use este método com extrema cautela. Se forem especificados dígitos a menos, o número será simplesmente truncado, exibindo um resultado errado! o void setMinimumFractionDigits(int digitos) Obs. Exemplo já visto antes //Parâmetros: digitos – número de dígitos a exibir; //Especifica o número mínimo de dígitos depois do separador decimal do objeto de formatação. Se o número tiver menos dígitos fracionários que o mínimo, serão então acrescentados zeros à direita. o void setMinimumIntegerDigits(int digitos) Obs. Exemplo já visto antes //Parâmetros: digitos – número de dígitos a exibir; //Especifica o número mínimo de dígitos antes do separador decimal do objeto de formatação. Se o número tiver menos dígitos que o mínimo, então serão acrescentados zeros à esquerda. Método da Classe java.text.DecimalFormat: Obs. Exemplo já visto antes o void DecimalFormat(String padrao) //retorna um objeto DecimalFormat que segue o padrão fornecido para a conversão de números em strings.
Compartilhar