Как лучше всего отформатировать следующее число, которое дается мне как строка?
String number = "1000500000.574" //assume my value will always be a String
Я хочу, чтобы это была строка со значением: 1,000,500,000.57
Как я могу отформатировать его как таковой?
Это также может быть выполнено с помощью String.format (), что может быть проще и / или более гибким, если вы форматируете несколько чисел в одной строке.
Для строки формата "%,. 2f" - "," означает отдельные группы цифр с запятыми, а ".2" означает округление до двух знаков после запятой.
Для получения справки о других параметрах форматирования см. Https://docs.oracle.com/javase/tutorial/java/data/numberformat.html.
источник
Как только вы преобразовали свою строку в число, вы можете использовать
или
источник
new DecimalFormat("0.##", DecimalFormatSymbols.getInstance(locale))
Учитывая, что это результат Google номер один
format number commas java
, вот ответ, который работает для людей, которые работают с целыми числами и не заботятся о десятичных дробях.выходы:
источник
Я создал свою собственную утилиту форматирования. Который очень быстро обрабатывает форматирование и дает много возможностей :)
Поддерживает:
Код можно найти здесь . Вы называете это так:
Я должен также отметить, что это не обрабатывает десятичную поддержку, но очень полезно для целочисленных значений. В приведенном выше примере будет показано «1.23M». Возможно, я мог бы добавить поддержку десятичной дроби, но с тех пор я не видел в ней особой пользы, поэтому я мог бы также объединить ее с классом типа BigInteger, который обрабатывает сжатые массивы char [] для математических вычислений.
источник
K
и чтоM
означаетисточник
Вы также можете использовать приведенное ниже решение -
источник
Вы можете сделать все преобразования в одну строку, используя следующий код:
Последние два знака # в конструкторе DecimalFormat также могут быть 0s. В любом случае работает.
источник
Первый ответ работает очень хорошо, но для ZERO / 0 он будет отформатирован как .00
Следовательно, формат #, ## 0,00 хорошо работает для меня. Всегда проверяйте разные числа, такие как 0/100 / 2334.30 и отрицательные числа, перед развертыванием в производственной системе.
источник
Вот самый простой способ добраться туда:
Выход: 10 987 655,88
источник