Как установить разделитель тысяч в Java?
У меня есть строковое представление BigDecimal, которое я хочу отформатировать с помощью разделителя тысяч и вернуть как String.
java
bigdecimal
Время веселья
источник
источник
Ответы:
Это должно работать (непроверено, на основе JavaDoc):
Согласно JavaDoc, приведение в первой строке должно быть сохранено для большинства локалей.
источник
getDecimalFormatSymbols()
говорит:Returns: a copy of the desired DecimalFormatSymbols
. Так что вы должны использоватьsetDecimalFormatSymbols(theCopy)
после изменения копии.new
и вернуть его в форматтер:DecimalFormatSymbols customSymbol = new DecimalFormatSymbols();
customSymbol.setDecimalSeparator(decimalSeperator.charAt(0));
customSymbol.setGroupingSeparator(thousandSeperator);
formatter.setDecimalFormatSymbols(customSymbol);
Вы можете использовать функцию форматирования с ",";
"," включает символы группировки, зависящие от локали.
документы
источник
.
в качестве разделителя?format()
с явным локал (Local.US
как известно, использование в,
качестве разделителя) , а затем заменить,
с пользовательским сепаратором:String.format(Locale.US, "%,d", n).replace(',', '.')
.int
. Илиlong
. ИлиBigInteger
. И используйте f, если хотите использоватьdouble
,float
илиBigDecimal
.РЕДАКТИРОВАТЬ
Чтобы получить настраиваемый разделитель группировки, например пробел, выполните следующие действия:
источник
NumberFormat
объект с желаемыми свойствами и используете его для форматирования файлаBigDecimal
. ABigDecimal
имеет только указанное значение, у него нет указанного формата.попробуйте отформатировать этот код так, как он используется в Бразилии:
источник
parameters.put("REPORT_LOCALE", new Locale("pt", "BR"));
отправьте этот параметр в отчет.Если вы используете разделитель тысяч для целочисленного типа данных, используйте 1.
String.format ("%, d \ n", 58625) и вывод будет 58 625
источник
источник
источник
Принятый ответ должен быть действительно изменен, иначе он не сработает. В getDecimalFormatSymbols делает защитную копию. Таким образом,
Новая строка такова: formatter.setDecimalFormatSymbols (символы);
источник
Для десятичных знаков :
источник
Как упоминалось выше, следующая ссылка дает вам конкретный код страны, позволяющий Java локализовать номер. У каждой страны свой стиль.
По ссылке выше вы найдете код страны, который нужно разместить здесь:
Швейцария, например, форматирует числа следующим образом:
1000,00 -> 1 000,00
код страны
Для этого у меня работают следующие коды :
Результат ожидаемый:
источник
источник