Qual é a melhor maneira de formatar o seguinte número que me é dado como uma String?
String number = "1000500000.574" //assume my value will always be a String
Eu quero que isso seja uma String com o valor: 1,000,500,000.57
Como posso formatá-lo como tal?
Isso também pode ser realizado usando String.format (), que pode ser mais fácil e / ou mais flexível se você estiver formatando vários números em uma sequência.
Para a sequência de formato "%, 2f" - "," significa separar grupos de dígitos com vírgulas e ".2" significa arredondar para duas casas após o decimal.
Para referência sobre outras opções de formatação, consulte https://docs.oracle.com/javase/tutorial/java/data/numberformat.html
fonte
Depois de converter sua String em um número, você pode usar
ou
fonte
new DecimalFormat("0.##", DecimalFormatSymbols.getInstance(locale))
Dado que este é o resultado número um do Google
format number commas java
, aqui está uma resposta que funciona para pessoas que trabalham com números inteiros e não se importam com decimais.saídas:
fonte
Eu criei meu próprio utilitário de formatação. O que é extremamente rápido no processamento da formatação, além de oferecer muitos recursos :)
Suporta:
O código pode ser encontrado aqui . Você chama assim:
Devo também salientar que isso não lida com suporte decimal, mas é muito útil para valores inteiros. O exemplo acima mostraria "1.23M" como a saída. Provavelmente eu poderia adicionar suporte decimal, talvez, mas não vi muito uso para isso desde então. É melhor mesclar isso em um tipo de classe BigInteger que lida com matrizes char [] compactadas para cálculos matemáticos.
fonte
K
ouM
meiosfonte
você também pode usar a solução abaixo -
fonte
Você pode fazer a conversão inteira em uma linha, usando o seguinte código:
Os dois últimos # sinais no construtor DecimalFormat também podem ser 0s. De qualquer maneira funciona.
fonte
A primeira resposta funciona muito bem, mas para o ZERO / 0 ele será formatado como .00
Portanto, o formato #, ## 0.00 está funcionando bem para mim. Sempre teste números diferentes, como 0/100 / 2334.30 e números negativos, antes de implantar no sistema de produção.
fonte
Aqui está a maneira mais simples de chegar lá:
saída: 10.987.655,88
fonte