Jaki jest najlepszy sposób sformatowania następującej liczby, która została mi podana jako ciąg?
String number = "1000500000.574" //assume my value will always be a String
Chcę, aby był to ciąg o wartości: 1,000,500,000.57
Jak mogę to sformatować jako takie?
Można to również osiągnąć za pomocą String.format (), co może być łatwiejsze i / lub bardziej elastyczne, jeśli formatujesz wiele liczb w jednym ciągu.
W przypadku ciągu formatu „%. 2f„ - ”,„ oznacza oddzielne grupy cyfr przecinkami, a „.2” oznacza zaokrąglenie do dwóch miejsc po przecinku.
Informacje na temat innych opcji formatowania można znaleźć pod adresem https://docs.oracle.com/javase/tutorial/java/data/numberformat.html
źródło
Po przekonwertowaniu ciągu na liczbę możesz użyć
lub
źródło
new DecimalFormat("0.##", DecimalFormatSymbols.getInstance(locale))
Biorąc pod uwagę, że jest to numer jeden w wynikach Google
format number commas java
, oto odpowiedź, która działa dla osób, które pracują z liczbami całkowitymi i nie dbają o ułamki dziesiętne.wyjścia:
źródło
Stworzyłem własne narzędzie do formatowania. Który jest niezwykle szybki w przetwarzaniu formatowania, a także zapewnia wiele funkcji :)
To wspiera:
Kod można znaleźć tutaj . Nazywasz to tak:
Powinienem również zauważyć, że nie obsługuje to obsługi liczb dziesiętnych, ale jest bardzo przydatne w przypadku wartości całkowitych. Powyższy przykład pokaże „1,23 mln” jako wyjście. Prawdopodobnie mógłbym dodać obsługę liczb dziesiętnych, ale od tamtej pory nie widziałem zbyt wiele pożytku z tego, równie dobrze mógłbym połączyć to w klasę typu BigInteger, która obsługuje skompresowane tablice char [] do obliczeń matematycznych.
źródło
K
lubM
oznaczaźródło
możesz również skorzystać z poniższego rozwiązania -
źródło
Całą konwersję możesz wykonać w jednej linii, używając następującego kodu:
Ostatnie dwa znaki # w konstruktorze DecimalFormat mogą również wynosić 0. Tak czy inaczej działa.
źródło
Pierwsza odpowiedź działa bardzo dobrze, ale dla ZERO / 0 będzie miała format .00
Dlatego format #, ## 0,00 działa dobrze dla mnie. Zawsze testuj różne liczby, takie jak 0/100 / 2334.30 i liczby ujemne, przed wdrożeniem do systemu produkcyjnego.
źródło
Oto najprostszy sposób, aby się tam dostać:
produkcja: 10 987 655,88
źródło