GARANTIR DESCONTO

Fórum Formatação Numérica: Locale e NumberFormat #569481

09/04/2009

0

Bom dia. Estou usando Locale e NumberFormat para lidar com números.
Locale meuLocal = new Locale( "pt", "BR" );
NumberFormat nfVal = NumberFormat.getCurrencyInstance( meuLocal );
No entanto, quando tento formatar
667407.3
obtenho como resultado
R$ 667.407,31
com 1 centavo a mais. E, pior ainda, quando tento formatar
50110162
obtenho
R$ 50.110.160,00
com 2 reais a menos. O que fazer para corrigir isto? Grato por qualquer ajuda, Helder Arruda
Helder_arruda

Helder_arruda

Responder

Posts

09/04/2009

Junior.esnaola

eu testei aqui. com float da os erros q você citou, mas com double dá certinho.
Locale meuLocal = new Locale( "pt", "BR" ); 
		NumberFormat nfVal = NumberFormat.getCurrencyInstance( meuLocal ); 
		double teste = (double) 50110162;
		System.out.println(nfVal.format(teste));
[]s
Responder

Gostei + 0

09/04/2009

Vitor Pamplona

use as classes BigInteger e BigDecimal para ter mais precisão :D
Responder

Gostei + 0

09/04/2009

Vitor Pamplona

Alterando pra Double funcionou bem, valeu! Sds, Helder Arruda
Responder

Gostei + 0

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

Aceitar