Formar numeros e somar

1 resposta
L

Boas pessoal,

Quero formatar os numeros que recebo do resultSet e estou fazndo o seguinte :

NumberFormat fmtt = new DecimalFormat(",###");

fmtt.setMaximumFractionDigits(1);

e o numero me aparece assim : 125.456,0

Mas eu queria que ele em vez do ponto pusesse a virgula e vice-versa. seria assim : 125,456.0 so assim o java irá dar o resultado correcto.

Isso porque se eu tento somar dois numeros com o primeiro formato o resultado dá errado.
Por exemplo eu recebo dois numeros : 125.456,0 e 130.456,0 o resultado será : 255.912

Tem jeito de eu mudar isso ?

Eu posso somar os numeros formatados ?

1 Resposta

C

Olá LuisClaudio,

Existe uma classe chamada DecimalFormatSymbols, que é responsável pelos símbolos de um número (ponto, vírgula, etc). Se você não especificar nada, o construtor do DecimalFormat utiliza os símbolos do Locale padrão do sistema:

public DecimalFormat(String pattern)
Creates a DecimalFormat using the given pattern and the symbols for the default locale.

Você deve criar um DecimalFormatSymbols com os símbolos do Locale que você quer; se você quer um número tipo 1.234.567,89, você deve usar uma formatação inglesa (Locale.ENGLISH). Você pode usar qualquer outro Locale pra configurar isso…

Seu código deve ficar algo assim:

DecimalFormatSymbols simbolos = new DecimalFormatSymbols(Locale.ENGLISH); NumberFormat fmtt = new DecimalFormat(",###", simbolos); fmtt.setMaximumFractionDigits(1);

Aí veja se é isso mesmo que você quer.

Até mais,

Criado 25 de abril de 2006
Ultima resposta 25 de abr. de 2006
Respostas 1
Participantes 2