Dúvida com BigDecimal

9 respostas
L

Pessoal;

O BigDecimal aceita valores, como por exemplo,

//2.66
//3.54
//3.00

Gostaria de saber se há um meio de ele aceitar números digitados com Vírgula, como:

//3,66
//2,54
//etc....

Pois no código que estou desenvolvendo, quando digito ele com vírgula, minha aplicação gera erro.

Obs:

fiz a seguinte formatação:

java.text.DecimalFormat formatador = new java.text.DecimalFormat( "#,##0.00" );

porém ainda preciso digitar com ponto para obter a saída com vírgula.

desde já agradeço.
Obrigado.

9 Respostas

M

Você pode fazer um replace antes de formatar o número. Troca a “,” pelo “.”, quando existir, e só então formata.

leoviniga

provavelmente esse número vem pra você como uma string (imagino eu)…
antes de você converter o tipo dele use o método replace() para fazer a troca

isasasiqueira

leoviniga:
provavelmente esse número vem pra você como uma string (imagino eu)…
antes de você converter o tipo dele use o método replace() para fazer a troca

A dica do leo foi boa! Faz o replace() nos pontos em que você precisar da vírgula. =)

L

Andei pesquisando e irei testar com a seguinte linha de comando:

BigDecimal value = new BigDecimal(str.replace(",", ""));

Qualquer que seja o resultado, volto a postar no tópico.

L

Obrigado pessoal, o código acima resolveu meu problema.

Jose111

lucas_duzo:
Andei pesquisando e irei testar com a seguinte linha de comando:

BigDecimal value = new BigDecimal(str.replace(",", ""));

Qualquer que seja o resultado, volto a postar no tópico.

O correto seria:

BigDecimal value = new BigDecimal(str.replace(",", "."));
L

pois é…
Esqueci de atualizar no tópico.

Obrigado.

TheKill

no iReport tem isso já.

basta criar um pattern la de valores e definir a forma com a qual quer o valor

TheKill
#,##0.00
Criado 13 de abril de 2011
Ultima resposta 15 de abr. de 2011
Respostas 9
Participantes 6