краткий
Паттерн DecimalFormat содержит положительные и отрицательные подметки, такие как «#, ## 0,00; (#, ## 0,00)»:
/*** Создано Шуай 2016/7/11. */public class main {public static void main (string [] args) {// положительное значение BigDecimal BigDecimal = BigDecimal.valueOF (-1221115151515151.541666); // Отрицательное значение BigDecimal BigDecimal2 = BigDecimal.valueOF (1221115151515151.541666); String pattern = "#, ## 0,00; (#, ## 0,00)"; DecimalFormatmat decimalFormat = new DecimalFormat (шаблон); decimalformat.format (bigdecimal); System.out.println (decimalformat.format (bigdecimal)); System.out.print (decimalformat.format (bigdecimal2)); }}Выход:
(12,211,151,515,151,54) 12,211,151,515,151,54
Каждый погрузчик состоит из префикса, численной части и суффикса. Например, положительный и отрицательный шаблон выше может иметь только разные префиксы и суффиксы. Численная часть по умолчанию принимает положительный шаблон, что означает, что «#, ## 0.0#; (#)» эквивалентна «#, ## 0.0#; (#, ## 0.0#)» . ; Негативная шаблона впоследствии является необязательным и может быть ни один, если нет, отрицательное значение будет отображаться в форме по умолчанию (префикс -« -» в большинстве регионов), например -12,211,151,515,51,54 . Интересно, что для 0 значений будет принята положительная шаблона:
открытый класс main {public static void main (string [] args) {bigdecimal bigdecimal = bigdecimal.valueof (-0,00); Bigdecimal bigdecimal2 = bigdecimal.valueof (0,00); String Pattern = "0,00; (0,00)"; DecimalFormatmat decimalFormat = new DecimalFormat (шаблон); decimalformat.format (bigdecimal); System.out.println (decimalformat.format (bigdecimal)); System.out.print (decimalformat.format (bigdecimal2)); }}Выход:
0,000,00
Decimalformat может разобрать строки напрямую:
System.out.print (decimalformat.parse (",,, 1,515,115,26262", новая пауляция (0)));Выход:
1515115.26262
Как видите, метод decimalformat.parse автоматически удален . Ранее здесь следует отметить, что первый символ проанализированной строки должен быть номером или следовать номеру, в противном случае исключение будет брошено или анализируется как нулевое . Второй параметр parse определяет положение первого символа, подлежащего анализу. Приведенные выше примеры позиции 0, 1, 2, 3 проанализированы из 1 и 4, 5, все проанализированы из 5, то есть, если его взято , бит заполняется номером рядом с ним. Если есть и другие символы, за исключением того, что номера появляются перед Parse , анализируйте анализ разворота на предыдущую цифру этого персонажа, или если есть другие символы, кроме чисел появляются после Pares (включая ) , то Pares Parse Parse Parse Parse Parse к предыдущей цифре этого персонажа.
Если шаблон содержит несколько групп символов с разными числами, например: «#, ##, ###, ####", затем он использует группу следующей, то есть "#, ##, ###, ###" == "#####, ###" == "##, ###, ###" = ##, ###, ##: "
открытый класс main {public static void main (string [] args) {bigdecimal bigdecimal = bigdecimal.valueof (65652323265.626262); String pattern = "#, ##, ##, ###, ### 0.00"; String pattern2 = "#####, ### 0,00"; String pattern3 = "##, ####, ### 0,00"; DecimalFormatmat decimalFormat = new DecimalFormat (шаблон); System.out.println (decimalformat.format (bigdecimal)); decimalformat.applypattern (pattern2); System.out.println (decimalformat.format (bigdecimal)); decimalformat.applypattern (Pattern3); System.out.println (decimalformat.format (bigdecimal)); }}Выход:
656 5232 3265,63656 5232 3265,63656 5232 3265,63
Специальные шаблоны персонажей
Научный метод подсчета
1234 может быть представлен как 1,234 x 10^3, а шаблон «0. ### e0», который отформатирует с 1234 до 1.234E3.
Количество целых чисел:
Количество значимых чисел получено из суммы минимального количества целочисленных цифр и максимального количества десятичных цифр. Например, «## 0. ## e0» Минимальное количество целочисленных цифр составляет 1, а максимальное количество десятичных цифр составляет 2, тогда допустимое число - 3, а форматированное 12345 - «12,3e3». За исключением допустимого номера, другие элементы опущены.
Численные правила округления
TrustingMode может быть установлен через метод decimalformat.setroundingmode. По умолчанию это RoundingMode.half_even.
Это не синхронизировано. Если доступ к нескольким потокам, вы должны реализовать синхронизацию самостоятельно
Рекомендуется создать отдельный экземпляр формата для каждого потока. Если несколько потоков получают доступ к формату одновременно, он должен быть синхронизирован внешне.
Пример
// Распечатать число, используя локализованное число, целое число, валюта, // и процент формата для каждого локали [] socales = numberformat.getaVailableLocales (); Double mynumber = -1234.56; Форма формата; for (int j = 0; j <4; ++ j) {System.out.println ("format"); for (int i = 0; i <locales.length; ++ i) {if (locales [i] .getCountry (). length () == 0) {продолжение; // Skip Langual Only Locales} System.out.print (локация [i] .getDisplayName ()); Switch (j) {case 0: form = numberFormat.getInstance (socales [i]); перерыв; Случай 1: form = numberFormat.getInteGerinstance (локал [i]); перерыв; Случай 2: form = numberFormat.getCurrencyInstance (локал [i]); перерыв; по умолчанию: form = numberFormat.getPercentInstance (локал [i]); перерыв; } if (form instanceOf decimalFormat) {System.out.print (":" + (((decimalFormat) форма) .topattern ()); } System.out.print (" ->" + form.format (mynumber)); try {System.out.println (" ->" + form.parse (form.format (mynumber))); } catch (parseException e) {}}}Ссылка: исходный адрес
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.