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 ?
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.
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.
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.