Converter String para Bigdecimal

Bom dia a todos,

Tenho uma String “254.123,000” e quero converter em Bigdecimal e exibila com este mesmo formatado com seus pontos e virgula.

Alguém pode me ajudar ?

Use NumberFormat para máscara de pontos e vírgulas.
De um NumberFormat você consegue extrair um Double dessa String, criar o BigDecimal, e para apresentação utilize NumberFormat novamente para máscara.

[quote=Rafael Nunes]Use NumberFormat para máscara de pontos e vírgulas.
De um NumberFormat você consegue extrair um Double dessa String, criar o BigDecimal, e para apresentação utilize NumberFormat novamente para máscara.[/quote]

Muito obrigado mesmo…Pode fazer um exemplo mais ou menos porque tentei usar esta classe NumberFormat mas não que eu não esteja usando-a corretamente.

Obrigado.

http://www.exampledepot.com/egs/java.text/FormatNum.html

Valeu Rafael, vou dá uma olhada…Obrigado.

Rafael, legal o exemplo, mas não atende o que estou precisando…

o campo é um field que poderá ter no máximo essa entrada: “999.999.999.999.999,999999999999999”

mas essa entrada poderá ser de diversas maneiras por exemplo:

=> 12
=> 12,05
=> 0,10
=> 121.123.123,5878

É basicamente esse fluxo :

Entrada(Input): 123.123,548 -> esse valor enviado como String;

No meu form tenho uma variável : BigDecimal valor = converter(String)

Saída(OutPut): valor convertido.

Dê uma olhada no exemplo que pus nesta thread:

http://www.guj.com.br/posts/list/100804.java

As palavras mágicas no programa que postei são:

DecimalFormat - ponha o número adequado de dígitos depois do "."
setParseBigDecimal - não se esqueça disso para que o parse funcione
format -> converte BigDecimal para String
parse -> converte de String para BigDecimal

[quote=thingol]As palavras mágicas no programa que postei são:

DecimalFormat - ponha o número adequado de dígitos depois do "."

Eu teria que fazer iteração nesta string para eu descobrir quantos dígitos tem depois do ponto ? Porque como te disse são várias formas de entrada e essa quantidade com certeza será alterada…

Um outro problema que estou notando é com o ponto e com a vírgula. Geralmente ele mostra só o ponto outras só a vírgula…

BOm exemplo esse seu.

Estou conseguindo fazer…Só estou meio perdio nessas mascaras #,###.## não entendo a lógica delas.

O que quer dizer: #,###.## ?

Cada # pode conter um dígito, ou estar em branco.
Cada 0 deve conter um dígito.
O “.” simboliza o ponto (ou a vírgula) decimais.
A “,” simboliza o separador de milhares.