Formatação de números em Java - Exemplos

04/08/2016

0

Fala galera!

No artigo escrito pelo Thiago, ele fez um exemplo sobre como formatar valores numéricos em Java.

O link do artigo é esse: https://www.devmedia.com.br/formatando-valores-numericos-em-java/36811

Eu fiz um exemplo diferente... a ideia é criar vários exemplos para enriquecer o conteúdo para a comunidade :)..


Grande abraço!
Wesley Yamazack

Wesley Yamazack

Responder

Post mais votado

04/08/2016

Esse é o meu código galera:

Usar o locale em conjunto com o NumberFormat ajuda bastante na hora de internacionalizar uma aplicação, então dessa forma escrevemos o código uma vez e deixamos o locale dinâmico teremos uma apresentação mais familiar para o usuário.. segue :)


import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;

class Teste {

	public static void main(String[] args) {

		Locale localeBR = new Locale("pt", "BR");
		Locale localeUS = new Locale("en", "US");
		Locale localeFR = new Locale("fr", "FR");
		Locale localeUK = new Locale("en", "UK");
		
		

		double valorReal = 291933.1233;
		float valorPercentual = 0.11f;
		int valorInteiro = 82819912;

		NumberFormat inteiro = NumberFormat.getInstance();
		NumberFormat dinheiroReal = NumberFormat.getCurrencyInstance(localeBR);
		NumberFormat dinheiroDolar = NumberFormat.getCurrencyInstance(localeUS);
		NumberFormat dinheiroEuroFranca = NumberFormat.getCurrencyInstance(localeFR);
		NumberFormat dinheiroEuroUK = NumberFormat.getCurrencyInstance(localeUK);
		NumberFormat percentual = NumberFormat.getPercentInstance(localeBR);
		NumberFormat numberFormat = NumberFormat.getNumberInstance(localeBR);
		
		DecimalFormat dinheiroYen = new DecimalFormat("\u00A5###,###.###");

		System.out.println("Valor Atual: " + valorReal);
		System.out.println("Valor Formatado em Moeda (Real): " + dinheiroReal.format(valorReal));
		System.out.println("Valor Formatado em Moeda (Dolar): " + dinheiroDolar.format(valorReal));
		System.out.println("Valor Formatado em Moeda (Euro/França): " + dinheiroEuroFranca.format(valorReal));
		System.out.println("Valor Formatado em Moeda (Euro/Reino Unido): " + dinheiroEuroUK.format(valorReal));
		System.out.println("Valor Formatado em Moeda com Decimal Format (Yen/Japão): " + dinheiroYen.format(valorReal));
		System.out.println("----------");
		System.out.println("Valor Atual: " + valorPercentual);
		System.out.println("Valor Formatado em Percentual: " + percentual.format(valorPercentual));
		System.out.println("----------");
		System.out.println("Valor Atual: " + valorInteiro);
		System.out.println("Valor Formatado: " + inteiro.format(valorInteiro));
		System.out.println("----------");
		System.out.println("Valor Atual: " + valorReal);
		System.out.println("Valor Formatado padrão: " + numberFormat.format(valorReal));
	}
}

Wesley Yamazack

Wesley Yamazack
Responder

Mais Posts

04/08/2016

Julio Sampaio

O DecimalFormat também ajuda bastante quando se tem algum formado diferente do padrão:

Padrão Número String Formatada
###.### 123.456 123.456
###.# 123.456 123.5
###,###.## 123456.789 123,456.79
000.### 9.95 009.95
##0.### 0.95 0.95

Locale locale = new Locale("en", "UK");
 
DecimalFormatSymbols symbols = new DecimalFormatSymbols(locale);
symbols.setDecimalSeparator(';');
symbols.setGroupingSeparator(':');
 
String pattern = "#,##0.###";
DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols);
 
String number = decimalFormat.format(123456789.123);
System.out.println(number);
Responder

04/08/2016

Santos

Legal a idéia, Wesley.

Aproveitando as Olimpíadas, já não sofre quando for passar troco pros gringos kkk.

Lembrando que a classe Locale precisa de dois parâmetros, o idioma do país com dois dígitos e a sigla.

Lista de idiomas seguindo a ISO 639
[url:descricao=Lista de siglas dos países seguindo a ISO 3166]https://pt.wikipedia.org/wiki/ISO_3166-1[/url]

Segue meu exemplo:


import java.text.NumberFormat;

import java.util.Locale;
 
class Teste {
 
    public static void main(String[] args) {
    	

       
        Locale localeGE = new Locale("de", "DE");
        Locale localeCL = new Locale("es", "CL");
        Locale localeKR = new Locale("ko", "KR");
        Locale localeAE = new Locale("ar","AE");
        Locale localeHK = new Locale("zh", "HK");         
 
        double valorReal = 455594.123;
        
        NumberFormat dinheiroDolarCanada = NumberFormat.getCurrencyInstance(localeGE);
        NumberFormat dinheiroPesoChileno = NumberFormat.getCurrencyInstance(localeCL);
        NumberFormat dinheiroWonSulCoreano = NumberFormat.getCurrencyInstance(localeKR);
        NumberFormat dinheiroDirham = NumberFormat.getCurrencyInstance(localeAE);
        NumberFormat dinheiroDolarHongKong = NumberFormat.getCurrencyInstance(localeHK);


        System.out.println("Valor Atual: " + valorReal);

        
        System.out.println("Valor Formatado em Moeda (Euro/Alemanha): " + dinheiroDolarCanada.format(valorReal));
        System.out.println("Valor Formatado em Moeda (Peso Chileno/Chile): " + dinheiroPesoChileno.format(valorReal));
        System.out.println("Valor Formatado em Moeda (Won SulCoreano/Coreia): " + dinheiroWonSulCoreano.format(valorReal));
        System.out.println("Valor Formatado em Moeda (Dirham/Emirados Arabes): " + dinheiroDirham.format(valorReal));
        System.out.println("Valor Formatado em Moeda (Dolar/Hong Kong): " + dinheiroDolarHongKong.format(valorReal));

    }
}
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar