Spec-Zone.ru › OpenJDK 17

Класс DecimalFormat

java.lang.Object
java.text.Format
java.text.NumberFormat
java.text.DecimalFormat
Все реализованные интерфейсы:
Serializable, Cloneable
public class DecimalFormat extends NumberFormat
DecimalFormat является конкретным подклассом NumberFormat, который форматирует десятичные числа. Он обладает разнообразными функциями, призванными сделать возможным разбор и форматирование чисел в любом языке, включая поддержку западных, арабских и индийских цифр. Он также поддерживает различные типы чисел, включая целые числа (123), числа с фиксированной точкой (123,4), научную запись (1,23E4), проценты (12%) и денежные суммы ($123). Все это может быть локализовано.

Для получения NumberFormat для конкретной локали, включая локаль по умолчанию, вызовите один из методов-фабрик NumberFormat, таких как getInstance(). В общем случае не следует вызывать конструкторы DecimalFormat напрямую, поскольку методы-фабрики NumberFormat могут возвращать подклассы, отличные от DecimalFormat. Если вам нужно настроить объект форматирования, сделайте что-то подобное:

 NumberFormat f = NumberFormat.getInstance(loc);
 if (f instanceof DecimalFormat) {
     ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
 }
 

DecimalFormat состоит из шаблона и набора символов. Шаблон можно установить напрямую с помощью applyPattern(), или косвенно с помощью методов API. Символы хранятся в объекте DecimalFormatSymbols. При использовании методов-фабрик NumberFormat шаблон и символы считываются из локализованных ResourceBundle.

Шаблоны

DecimalFormat шаблоны имеют следующий синтаксис:
 Pattern:
         PositivePattern
         PositivePattern ; NegativePattern
 PositivePattern:
         Prefixopt Number Suffixopt
 NegativePattern:
         Prefixopt Number Suffixopt
 Prefix:
         any Unicode characters except \uFFFE, \uFFFF, and special characters
 Suffix:
         any Unicode characters except \uFFFE, \uFFFF, and special characters
 Number:
         Integer Exponentopt
         Integer . Fraction Exponentopt
 Integer:
         MinimumInteger
         #
         # Integer
         # , Integer
 MinimumInteger:
         0
         0 MinimumInteger
         0 , MinimumInteger
 Fraction:
         MinimumFractionopt OptionalFractionopt
 MinimumFraction:
         0 MinimumFractionopt
 OptionalFraction:
         # OptionalFractionopt
 Exponent:
         E MinimumExponent
 MinimumExponent:
         0 MinimumExponentopt
 

DecimalFormat шаблон содержит положительный и отрицательный подшаблон, например, "#,##0.00;(#,##0.00)". Каждый подшаблон имеет префикс, числовую часть и суффикс. Отрицательный подшаблон является необязательным; если он отсутствует, то положительный подшаблон с префиксом «минус» ('-' U+002D HYPHEN-MINUS) используется в качестве отрицательного подшаблона. То есть, "0.00" эквивалентно "0.00;-0.00". Если есть явный отрицательный подшаблон, он служит только для указания отрицательного префикса и суффикса; количество цифр, минимальное количество цифр и другие характеристики такие же, как у положительного шаблона. Это означает, что "#,##0.0#;(#)" дает ровно тот же результат, что и "#,##0.0#;(#,##0.0#)".

Префиксы, суффиксы и различные символы, используемые для бесконечности, цифр, разделителей групп, десятичных разделителей и т. д., могут быть установлены в произвольные значения, и они будут правильно отображаться во время форматирования. Однако следует позаботиться о том, чтобы символы и строки не конфликтовали, иначе разбор будет ненадежным. Например, либо положительные, либо отрицательные префиксы, либо суффиксы должны быть различными для того, чтобы DecimalFormat.parse() смог различать положительные и отрицательные значения. (Если они идентичны, то DecimalFormat будет вести себя так, как будто отрицательный подшаблон не был указан.) Другой пример заключается в том, что десятичный разделитель и разделитель групп должны быть различными символами, иначе разбор будет невозможен.

Разделитель групп обычно используется для тысяч, но в некоторых странах он разделяет десятки тысяч. Размер группы — это постоянное количество цифр между разделителями групп, например 3 для 100 000 000 или 4 для 1 0000 0000. Если вы укажете шаблон с несколькими разделителями групп, интервал между последним и концом целой части используется. Таким образом, "#,##,###,####" == "######,####" == "##,####,####".

Специальные символы шаблона

Многие символы в шаблоне интерпретируются буквально; они сопоставляются при разборе и выводятся без изменений при форматировании. Специальные символы, с другой стороны, обозначают другие символы, строки или классы символов. Они должны быть заключены в кавычки, если не указано иное, если они должны появиться в префиксе или суффиксе как литералы.

Перечисленные здесь символы используются в шаблонах без локализации. Локализованные шаблоны используют соответствующие символы, взятые из объекта DecimalFormatSymbols этого форматировщика вместо этого, и эти символы теряют свой специальный статус. Два исключения — знак валюты и кавычка, которые не локализованы.

Таблица, показывающая символ, расположение, локализован, и значение.
Символ Расположение Локализован? Значение
0 Число Да Цифра
# Число Да Цифра, ноль отображается как отсутствие
. Число Да Десятичный разделитель или денежный десятичный разделитель
- Число Да Знак минус
, Число Да Разделитель групп или денежный разделитель групп
E Число Да Разделяет мантиссу и экспоненту в научной записи. Не обязательно заключать в кавычки в префиксе или суффиксе.
; Граница подшаблона Да Разделяет положительный и отрицательный подшаблоны
% Префикс или суффикс Да Умножить на 100 и показать как процент
\u2030 Префикс или суффикс Да Умножить на 1000 и показать как промилле
¤ (\u00A4) Префикс или суффикс Нет Знак валюты, заменяется символом валюты. Если удвоенный, заменяется международным символом валюты. Если присутствует в шаблоне, денежные десятичные/групповые разделители используются вместо десятичных/групповых разделителей.
' Префикс или суффикс Нет Используется для заключения специальных символов в префикс или суффикс, например, "'#'#" форматирует 123 как "#123". Чтобы создать одиночную кавычку, используйте две подряд: "# o''clock".

Научная запись

Числа в научной записи выражаются как произведение мантиссы и степени десяти, например, 1234 можно выразить как 1,234 х 10^3. Мантисса часто находится в диапазоне 1,0 ≤ x < 10,0, но это необязательно. DecimalFormat может быть настроен на форматирование и разбор научной записи только через шаблон; в настоящее время нет метода-фабрики для создания форматировщика научной записи. В шаблоне символ экспоненты, непосредственно после которого следуют одна или несколько цифр, указывает на научную запись. Пример: "0.###E0" форматирует число 1234 как "1.234E3".

  • Количество цифр после символа экспоненты задаёт минимальное количество цифр в экспоненте. Максимального значения нет. Отрицательные показатели степени форматируются с использованием локализованного знака минус, а не префикса и суффикса из шаблона. Это позволяет использовать такие шаблоны, как "0.###E0 m/s".
  • Минимальное и максимальное количество целых цифр интерпретируются совместно:
    • Если максимальное количество целых цифр больше минимального и больше 1, это принудительно заставляет экспоненту быть кратной максимальному количеству целых цифр, а минимальное количество целых цифр интерпретируется как 1. Наиболее распространённое применение этого — генерация инженерной записи, в которой экспонента кратна трём, например, "##0.#####E0". Используя этот шаблон, число 12345 форматируется как "12.345E3", а 123456 — как "123.456E3".
    • В противном случае, минимальное количество целых цифр достигается путём корректировки экспоненты. Пример: 0,00123, отформатированный с помощью "00.###E0", даёт "12.3E-4".
  • Количество значащих цифр в мантиссе — это сумма минимального целого числа и максимальной дробной части цифр и не зависит от максимального количества целых цифр. Например, 12345, отформатированный с помощью "##0.##E0", — "12.3E3". Чтобы отобразить все цифры, установите количество значащих цифр в ноль. Количество значащих цифр не влияет на разбор.
  • Шаблоны экспоненциальной записи не могут содержать разделители групп.

Округление

DecimalFormat предоставляет режимы округления, определённые в RoundingMode для форматирования. По умолчанию используется RoundingMode.HALF_EVEN.

Цифры

Для форматирования DecimalFormat использует десять последовательных символов, начиная с локализованной цифры ноль, определённой в объекте DecimalFormatSymbols как цифры. Для разбора распознаются эти цифры, а также все Unicode-цифры, как определено в Character.digit.

Специальные значения

NaN форматируется как строка, которая обычно имеет один символ &#92;uFFFD. Эта строка определяется объектом DecimalFormatSymbols. Это единственное значение, для которого префиксы и суффиксы не используются.

Бесконечность форматируется как строка, которая обычно имеет один символ &#92;u221E, с применением положительных или отрицательных префиксов и суффиксов. Строка бесконечности определяется объектом DecimalFormatSymbols.

Отрицательный ноль ("-0") анализируется как

  • BigDecimal(0) если isParseBigDecimal() истинно,
  • Long(0) если isParseBigDecimal() ложно и isParseIntegerOnly() истинно,
  • Double(-0.0) если оба isParseBigDecimal() и isParseIntegerOnly() ложны.

Синхронизация

Форматы десятичных чисел, как правило, не синхронизированы. Рекомендуется создавать отдельные экземпляры форматирования для каждого потока. Если к формату обращаются несколько потоков одновременно, он должен быть синхронизирован внешним образом.

Пример


 // Print out a number using the localized number, integer, currency,
 // and percent format for each locale
 Locale[] locales = NumberFormat.getAvailableLocales();
 double myNumber = -1234.56;
 NumberFormat form;
 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) {
            continue; // Skip language-only locales
         }
         System.out.print(locales[i].getDisplayName());
         switch (j) {
         case 0:
             form = NumberFormat.getInstance(locales[i]); break;
         case 1:
             form = NumberFormat.getIntegerInstance(locales[i]); break;
         case 2:
             form = NumberFormat.getCurrencyInstance(locales[i]); break;
         default:
             form = NumberFormat.getPercentInstance(locales[i]); break;
         }
         if (form instanceof DecimalFormat) {
             System.out.print(": " + ((DecimalFormat) form).toPattern());
         }
         System.out.print(" -> " + form.format(myNumber));
         try {
             System.out.println(" -> " + form.parse(form.format(myNumber)));
         } catch (ParseException e) {}
     }
 }
 
С:
1.1
См. также:
  • Java Tutorial
  • NumberFormat
  • DecimalFormatSymbols
  • ParsePosition
  • Serialized Form

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в классе java.text.NumberFormat

NumberFormat.Field, NumberFormat.Style

Краткое описание полей

Поля, объявленные в классе java.text.NumberFormat

FRACTION_FIELD, INTEGER_FIELD

Краткое описание конструкторов

Конструктор Описание
DecimalFormat()
Создаёт DecimalFormat с использованием шаблона по умолчанию и символов для локали по умолчанию FORMAT.
DecimalFormat(String pattern)
Создаёт DecimalFormat с использованием заданного шаблона и символов для локали по умолчанию FORMAT.
DecimalFormat(String pattern, DecimalFormatSymbols symbols)
Создаёт DecimalFormat с использованием заданного шаблона и символов.

Краткое описание методов

Модификатор и тип Метод Описание
void applyLocalizedPattern(String pattern)
Применяет заданный шаблон к этому объекту Format.
void applyPattern(String pattern)
Применяет заданный шаблон к этому объекту Format.
Object clone()
Стандартная перегрузка; без изменений в семантике.
boolean equals(Object obj)
Переопределяет equals
StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
Форматирует double для создания строки.
StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition)
Форматирует long для создания строки.
final StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
Форматирует число и добавляет полученный текст в заданный буфер строк.
AttributedCharacterIterator formatToCharacterIterator(Object obj)
Форматирует объект, создавая AttributedCharacterIterator.
Currency getCurrency()
Возвращает валюту, используемую этим форматом десятичных чисел при форматировании значений валюты.
DecimalFormatSymbols getDecimalFormatSymbols()
Возвращает копию символов формата десятичных чисел, которые обычно не изменяются программистом или пользователем.
int getGroupingSize()
Возвращает размер группировки.
int getMaximumFractionDigits()
Получает максимальное количество цифр, разрешённых в дробной части числа.
int getMaximumIntegerDigits()
Получает максимальное количество цифр, разрешённых в целой части числа.
int getMinimumFractionDigits()
Получает минимальное количество цифр, разрешённых в дробной части числа.
int getMinimumIntegerDigits()
Получает минимальное количество цифр, разрешённых в целой части числа.
int getMultiplier()
Получает множитель для использования в процентах, промилле и аналогичных форматах.
String getNegativePrefix()
Получает префикс для отрицательных значений.
String getNegativeSuffix()
Получает суффикс для отрицательных значений.
String getPositivePrefix()
Получает префикс для положительных значений.
String getPositiveSuffix()
Получает суффикс для положительных значений.
RoundingMode getRoundingMode()
Получает RoundingMode, используемый в этом DecimalFormat.
int hashCode()
Переопределяет hashCode
boolean isDecimalSeparatorAlwaysShown()
Позволяет получить поведение разделителя десятичных знаков с целыми числами.
boolean isParseBigDecimal()
Возвращает, возвращает ли метод parse(java.lang.String, java.text.ParsePosition) BigDecimal.
Number parse(String text, ParsePosition pos)
Парсит текст из строки для создания Number.
void setCurrency(Currency currency)
Устанавливает валюту, используемую этим форматом при форматировании значений валюты.
void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)
Устанавливает символы формата десятичных чисел, которые обычно не изменяются программистом или пользователем.
void setDecimalSeparatorAlwaysShown(boolean newValue)
Позволяет установить поведение разделителя десятичных знаков с целыми числами.
void setGroupingSize(int newValue)
Устанавливает размер группировки.
void setMaximumFractionDigits(int newValue)
Устанавливает максимальное количество цифр, разрешённых в дробной части числа.
void setMaximumIntegerDigits(int newValue)
Устанавливает максимальное количество цифр, разрешённых в целой части числа.
void setMinimumFractionDigits(int newValue)
Устанавливает минимальное количество цифр, разрешённых в дробной части числа.
void setMinimumIntegerDigits(int newValue)
Устанавливает минимальное количество цифр, разрешённых в целой части числа.
void setMultiplier(int newValue)
Устанавливает множитель для использования в процентах, промилле и аналогичных форматах.
void setNegativePrefix(String newValue)
Устанавливает префикс для отрицательных значений.
void setNegativeSuffix(String newValue)
Устанавливает суффикс для отрицательных значений.
void setParseBigDecimal(boolean newValue)
Устанавливает, возвращает ли метод parse(java.lang.String, java.text.ParsePosition) BigDecimal.
void setPositivePrefix(String newValue)
Устанавливает префикс для положительных значений.
void setPositiveSuffix(String newValue)
Устанавливает суффикс для положительных значений.
void setRoundingMode(RoundingMode roundingMode)
Устанавливает RoundingMode в этом DecimalFormat.
String toLocalizedPattern()
Генерирует локализованную строку шаблона, представляющую текущее состояние этого объекта Format.
String toPattern()
Генерирует строку шаблона, представляющую текущее состояние этого объекта Format.

Методы, объявленные в классе java.text.NumberFormat

format, format, getAvailableLocales, getCompactNumberInstance, getCompactNumberInstance, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, isGroupingUsed, isParseIntegerOnly, parse, parseObject, setGroupingUsed, setParseIntegerOnly

Методы, объявленные в классе java.text.Format

format, parseObject

Методы, объявленные в классе java.lang.Object

finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

DecimalFormat

public DecimalFormat()
Создаёт DecimalFormat с использованием шаблона и символов по умолчанию для локального FORMAT по умолчанию. Это удобный способ получения DecimalFormat, когда локализация не является приоритетом.

Для получения стандартных форматов для заданной локализации используйте фабричные методы NumberFormat, такие как getNumberInstance. Эти фабрики вернут наиболее подходящий подкласс NumberFormat для данной локализации.

См. также:
  • NumberFormat.getInstance()
  • NumberFormat.getNumberInstance()
  • NumberFormat.getCurrencyInstance()
  • NumberFormat.getPercentInstance()

DecimalFormat

public DecimalFormat(String pattern)
Создаёт DecimalFormat с использованием заданного шаблона и символов для локального FORMAT по умолчанию. Это удобный способ получения DecimalFormat, когда локализация не является приоритетом.

Для получения стандартных форматов для заданной локализации используйте фабричные методы NumberFormat, такие как getNumberInstance. Эти фабрики вернут наиболее подходящий подкласс NumberFormat для данной локализации.

Параметры:
pattern - строка шаблона без локализации.
Исключения:
NullPointerException - если pattern равно null
IllegalArgumentException - если заданный шаблон некорректен.
См. также:
  • NumberFormat.getInstance()
  • NumberFormat.getNumberInstance()
  • NumberFormat.getCurrencyInstance()
  • NumberFormat.getPercentInstance()

DecimalFormat

public DecimalFormat(String pattern, DecimalFormatSymbols symbols)
Создаёт DecimalFormat с использованием заданного шаблона и символов. Используйте этот конструктор, когда требуется полная настройка поведения формата.

Для получения стандартных форматов для заданной локализации используйте фабричные методы NumberFormat, такие как getInstance или getCurrencyInstance. Если вам нужны только незначительные корректировки стандартного формата, вы можете изменить формат, возвращаемый методом NumberFormat фабрики.

Параметры:
pattern - строка шаблона без локализации
symbols - набор символов для использования
Исключения:
NullPointerException - если любой из заданных аргументов равен null
IllegalArgumentException - если заданный шаблон некорректен
См. также:
  • NumberFormat.getInstance()
  • NumberFormat.getNumberInstance()
  • NumberFormat.getCurrencyInstance()
  • NumberFormat.getPercentInstance()
  • DecimalFormatSymbols

Подробное описание методов

format

public final StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
Форматирует число и добавляет полученный текст в заданный буфер строк. Число может быть любого подкласса Number.

Эта реализация использует максимальную точность.

Переопределяет:
format в классе NumberFormat
Параметры:
number - число для форматирования
toAppendTo - буфер строк, в который будет добавлен отформатированный текст
pos - отслеживает позицию поля в возвращаемой строке. Например, для форматирования числа 1234567.89 в локали Locale.US, если заданный fieldPosition равен NumberFormat.INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены соответственно в 0 и 9 для выходной строки 1,234,567.89.
Возвращает:
переданное значение в качестве toAppendTo
Исключения:
IllegalArgumentException - если number равно null или не является экземпляром Number.
NullPointerException - если toAppendTo или pos равны null
ArithmeticException - если требуется округление с режимом округления RoundingMode.UNNECESSARY
См. также:
  • FieldPosition

format

public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
Форматирует double для получения строки.
Определено в:
format в классе NumberFormat
Параметры:
number - double для форматирования
result - место, куда будет добавлен текст
fieldPosition - отслеживает позицию поля в возвращаемой строке. Например, для форматирования числа 1234567.89 в локали Locale.US, если заданный fieldPosition равен NumberFormat.INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены соответственно в 0 и 9 для выходной строки 1,234,567.89.
Возвращает:
отформатированную строку с числом
Исключения:
NullPointerException - если result или fieldPosition равны null
ArithmeticException - если требуется округление с режимом округления RoundingMode.UNNECESSARY
См. также:
  • FieldPosition

format

public StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition)
Форматирует long для получения строки.
Определено в:
format в классе NumberFormat
Параметры:
number - long для форматирования
result - место, куда будет добавлен текст
fieldPosition - отслеживает позицию поля в возвращаемой строке. Например, для форматирования числа 123456789 в локали Locale.US, если заданный fieldPosition равен NumberFormat.INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены соответственно в 0 и 11 для выходной строки 123,456,789.
Возвращает:
отформатированную строку с числом
Исключения:
NullPointerException - если result или fieldPosition равны null
ArithmeticException - если требуется округление с режимом округления RoundingMode.UNNECESSARY
См. также:
  • FieldPosition

formatToCharacterIterator

public AttributedCharacterIterator formatToCharacterIterator(Object obj)
Форматирует объект, создавая AttributedCharacterIterator. Вы можете использовать возвращаемый AttributedCharacterIterator для построения результирующей строки, а также для определения информации о результирующей строке.

Каждый ключ атрибута AttributedCharacterIterator будет иметь тип NumberFormat.Field, а значение атрибута будет таким же, как и ключ атрибута.

Переопределяет:
formatToCharacterIterator в классе Format
Параметры:
obj - объект для форматирования
Возвращает:
AttributedCharacterIterator, описывающий отформатированное значение.
Исключения:
NullPointerException - если obj равен null.
IllegalArgumentException - когда Format не может отформатировать данный объект.
ArithmeticException - если требуется округление с режимом округления RoundingMode.UNNECESSARY
С момента:
1.4

parse

public Number parse(String text, ParsePosition pos)
Парсит текст из строки для получения Number.

Метод пытается распарсить текст, начиная с индекса, заданного pos. Если парсинг успешен, индекс pos обновляется до индекса после последнего используемого символа (парсинг не обязательно использует все символы до конца строки), а распарсенное число возвращается. Обновлённый pos может быть использован для указания стартовой точки для следующего вызова этого метода. Если произошла ошибка, индекс pos не изменяется, индекс ошибки pos устанавливается в индекс символа, где произошла ошибка, и возвращается null.

Возвращаемый подкласс зависит от значения isParseBigDecimal(), а также от парсируемой строки.

  • Если isParseBigDecimal() ложно (по умолчанию), большинство целочисленных значений возвращаются как объекты Long, независимо от того, как они записаны: "17" и "17.000" оба парсятся в Long(17). Значения, которые не помещаются в Long, возвращаются как Doubleы. Это включает значения с дробной частью, бесконечные значения, NaN, и значение -0.0. DecimalFormat не определяет, возвращать ли Double или Long на основе наличия десятичного разделителя в исходной строке. Это предотвратит точное парсинг целых чисел, выходящих за пределы мантиссы double, таких как "-9,223,372,036,854,775,808.00".

    Звонящие стороны могут использовать методы Number doubleValue, longValue, и т.д., чтобы получить желаемый тип.

  • Если isParseBigDecimal() истинно, значения возвращаются как объекты BigDecimal. Эти значения соответствуют тем, что были бы сконструированы функцией BigDecimal(String) для соответствующих строк в локалинезависимом формате. Особые случаи — отрицательная и положительная бесконечность, и NaN, возвращаются как объекты Double, содержащие значения соответствующих констант Double.

DecimalFormat парсит все символы Unicode, представляющие десятичные цифры, как определено в Character.digit(). Кроме того, DecimalFormat также распознаёт как цифры десять последовательных символов, начиная с локализованной нулевой цифры, определённой в объекте DecimalFormatSymbols.

Specified by:
parse in class NumberFormat
Parameters:
text - строка для парсинга
pos - Объект ParsePosition с информацией об индексе и индексе ошибки, как описано выше.
Returns:
распарсенное значение или null при неудачном парсинге
Throws:
NullPointerException - если text или pos равно null.
See Also:
  • NumberFormat.isParseIntegerOnly()
  • Format.parseObject(java.lang.String, java.text.ParsePosition)

getDecimalFormatSymbols

public DecimalFormatSymbols getDecimalFormatSymbols()
Возвращает копию символов формата десятичной точки, которые, как правило, не изменяются программистом или пользователем.
Returns:
копия необходимых DecimalFormatSymbols
See Also:
  • DecimalFormatSymbols

setDecimalFormatSymbols

public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)
Устанавливает символы формата десятичной точки, которые, как правило, не изменяются программистом или пользователем.
Parameters:
newSymbols - необходимые DecimalFormatSymbols
See Also:
  • DecimalFormatSymbols

getPositivePrefix

public String getPositivePrefix()
Возвращает положительный префикс.

Примеры: +123, $123, sFr123

Returns:
положительный префикс

setPositivePrefix

public void setPositivePrefix(String newValue)
Устанавливает положительный префикс.

Примеры: +123, $123, sFr123

Parameters:
newValue - новый положительный префикс

getNegativePrefix

public String getNegativePrefix()
Возвращает отрицательный префикс.

Примеры: -123, ($123) (с отрицательным суффиксом), sFr-123

Returns:
отрицательный префикс

setNegativePrefix

public void setNegativePrefix(String newValue)
Устанавливает отрицательный префикс.

Примеры: -123, ($123) (с отрицательным суффиксом), sFr-123

Parameters:
newValue - новый отрицательный префикс

getPositiveSuffix

public String getPositiveSuffix()
Возвращает положительный суффикс.

Пример: 123%

Returns:
положительный суффикс

setPositiveSuffix

public void setPositiveSuffix(String newValue)
Устанавливает положительный суффикс.

Пример: 123%

Parameters:
newValue - новый положительный суффикс

getNegativeSuffix

public String getNegativeSuffix()
Возвращает отрицательный суффикс.

Примеры: -123%, ($123) (с положительными суффиксами)

Returns:
отрицательный суффикс

setNegativeSuffix

public void setNegativeSuffix(String newValue)
Устанавливает отрицательный суффикс.

Примеры: 123%

Parameters:
newValue - новый отрицательный суффикс

getMultiplier

public int getMultiplier()
Получает множитель для использования в процентах, промилле и подобных форматах.
Returns:
множитель
See Also:
  • setMultiplier(int)

setMultiplier

public void setMultiplier(int newValue)
Устанавливает множитель для использования в процентах, промилле и подобных форматах. Для формата процентов установите множитель в 100 и суффиксы в '%' (для арабского, используйте арабский знак процента). Для формата промилле установите множитель в 1000 и суффиксы в '\u2030'.

Пример: при множителе 100, 1.23 форматируется как "123", а "123" распарсивается в 1.23.

Parameters:
newValue - новый множитель
See Also:
  • getMultiplier()

getGroupingSize

public int getGroupingSize()
Возвращает размер группировки. Размер группировки — это количество цифр между разделителями группировки в целой части числа. Например, в числе "123,456.78" размер группировки равен 3. Размер группировки, равный нулю, означает, что группировка не используется, что обеспечивает такое же форматирование, как при вызове setGroupingUsed(false).
Returns:
размер группировки
See Also:
  • setGroupingSize(int)
  • NumberFormat.isGroupingUsed()
  • DecimalFormatSymbols.getGroupingSeparator()

setGroupingSize

public void setGroupingSize(int newValue)
Устанавливает размер группировки. Размер группировки — это количество цифр между разделителями группировки в целой части числа. Например, в числе "123,456.78" размер группировки равен 3. Размер группировки, равный нулю, означает, что группировка не используется, что обеспечивает такое же форматирование, как при вызове setGroupingUsed(false).

Передаваемое значение преобразуется в байт, что может привести к потере информации. Значения, которые являются отрицательными или больше Byte.MAX_VALUE, вызовут IllegalArgumentException.

Parameters:
newValue - новый размер группировки
Throws:
IllegalArgumentException - если newValue отрицательное или больше Byte.MAX_VALUE
See Also:
  • getGroupingSize()
  • NumberFormat.setGroupingUsed(boolean)
  • DecimalFormatSymbols.setGroupingSeparator(char)

isDecimalSeparatorAlwaysShown

public boolean isDecimalSeparatorAlwaysShown()
Позволяет получить поведение десятичного разделителя с целыми числами. (Десятичный разделитель всегда будет отображаться с десятичными числами.)

Пример: Десятичный включён: 12345 → 12345.; Выключен: 12345 → 12345

Returns:
true если десятичный разделитель всегда отображается; false в противном случае

setDecimalSeparatorAlwaysShown

public void setDecimalSeparatorAlwaysShown(boolean newValue)
Позволяет установить поведение десятичного разделителя с целыми числами. (Десятичный разделитель всегда будет отображаться с десятичными числами.)

Пример: Десятичный включён: 12345 → 12345.; Выключен: 12345 → 12345

Parameters:
newValue - true если десятичный разделитель всегда отображается; false в противном случае

isParseBigDecimal

public boolean isParseBigDecimal()
Возвращает, является ли метод parse(java.lang.String, java.text.ParsePosition) возвращаемым значением BigDecimal. Значение по умолчанию — false.
Возвращает:
true если метод parse возвращает BigDecimal; false в противном случае
С:
1.5
См. также:
  • setParseBigDecimal(boolean)

setParseBigDecimal

public void setParseBigDecimal(boolean newValue)
Устанавливает, возвращает ли метод parse(java.lang.String, java.text.ParsePosition) значение BigDecimal.
Параметры:
newValue - true если метод parse возвращает BigDecimal; false в противном случае
С:
1.5
См. также:
  • isParseBigDecimal()

clone

public Object clone()
Стандартная перегрузка; семантика не изменяется.
Переопределяет:
clone в классе NumberFormat
Возвращает:
клонированный экземпляр.
См. также:
  • Cloneable

equals

public boolean equals(Object obj)
Переопределяет equals
Переопределяет:
equals в классе NumberFormat
Параметры:
obj - ссылка на объект для сравнения.
Возвращает:
true если этот объект идентичен аргументу obj; false в противном случае.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Переопределяет hashCode
Переопределяет:
hashCode в классе NumberFormat
Возвращает:
значение хэш-кода для этого объекта.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toPattern

public String toPattern()
Генерирует строку шаблона, представляющую текущее состояние этого объекта Format.
Возвращает:
строку шаблона
См. также:
  • applyPattern(java.lang.String)

toLocalizedPattern

public String toLocalizedPattern()
Генерирует локализованную строку шаблона, представляющую текущее состояние этого объекта Format.
Возвращает:
локализованную строку шаблона
См. также:
  • applyPattern(java.lang.String)

applyPattern

public void applyPattern(String pattern)
Применение заданного шаблона к этому объекту Format. Шаблон — это краткое описание различных свойств форматирования. Эти свойства также можно изменить индивидуально с помощью различных методов установки.

Нет ограничения на количество цифр целой части, так как это типичное требование конечного пользователя; используйте setMaximumInteger если нужно установить реальное значение. Для отрицательных чисел используйте второй шаблон, разделенный точкой с запятой

Пример "#,#00.0#" → 1 234,56

Это означает минимум 2 цифры целой части, 1 цифру дробной части и максимум 2 цифры дробной части.

Пример: "#,#00.0#;(#,#00.0#)" для отрицательных значений в скобках.

В шаблонах для отрицательных чисел минимальное и максимальное количество цифр игнорируются; предполагается, что эти значения заданы в шаблоне для положительных чисел.

Параметры:
pattern - новый шаблон
Исключения:
NullPointerException - если pattern равно null
IllegalArgumentException - если заданный шаблон некорректен.

applyLocalizedPattern

public void applyLocalizedPattern(String pattern)
Применение заданного шаблона к этому объекту Format. Шаблон предполагается в локализованном формате. Шаблон — это краткое описание различных свойств форматирования. Эти свойства также можно изменить индивидуально с помощью различных методов установки.

Нет ограничения на количество цифр целой части, так как это типичное требование конечного пользователя; используйте setMaximumInteger если нужно установить реальное значение. Для отрицательных чисел используйте второй шаблон, разделенный точкой с запятой

Пример "#,#00.0#" → 1 234,56

Это означает минимум 2 цифры целой части, 1 цифру дробной части и максимум 2 цифры дробной части.

Пример: "#,#00.0#;(#,#00.0#)" для отрицательных значений в скобках.

В шаблонах для отрицательных чисел минимальное и максимальное количество цифр игнорируются; предполагается, что эти значения заданы в шаблоне для положительных чисел.

Параметры:
pattern - новый шаблон
Исключения:
NullPointerException - если pattern равно null
IllegalArgumentException - если заданный шаблон некорректен.

setMaximumIntegerDigits

public void setMaximumIntegerDigits(int newValue)
Устанавливает максимальное количество цифр в целой части числа. При форматировании чисел, отличных от BigInteger и BigDecimal объектов, используется меньшее из значений newValue и 309. Отрицательные входные значения заменяются на 0.
Переопределяет:
setMaximumIntegerDigits в классе NumberFormat
Параметры:
newValue - максимальное количество цифр целой части; если меньше нуля, используется ноль. Конкретный подкласс может установить верхний предел для этого значения, соответствующий типу числа, которое форматируется.
См. также:
  • NumberFormat.setMaximumIntegerDigits(int)

setMinimumIntegerDigits

public void setMinimumIntegerDigits(int newValue)
Устанавливает минимальное количество цифр в целой части числа. При форматировании чисел, отличных от BigInteger и BigDecimal объектов, используется меньшее из значений newValue и 309. Отрицательные входные значения заменяются на 0.
Переопределяет:
setMinimumIntegerDigits в классе NumberFormat
Параметры:
newValue - минимальное количество цифр целой части; если меньше нуля, используется ноль. Конкретный подкласс может установить верхний предел для этого значения, соответствующий типу числа, которое форматируется.
См. также:
  • NumberFormat.setMinimumIntegerDigits(int)

setMaximumFractionDigits

public void setMaximumFractionDigits(int newValue)
Устанавливает максимальное количество цифр в дробной части числа. При форматировании чисел, отличных от BigInteger и BigDecimal объектов, используется меньшее из значений newValue и 340. Отрицательные входные значения заменяются на 0.
Переопределяет:
setMaximumFractionDigits в классе NumberFormat
Параметры:
newValue - максимальное количество цифр дробной части; если меньше нуля, используется ноль. Конкретный подкласс может установить верхний предел для этого значения, соответствующий типу числа, которое форматируется.
См. также:
  • NumberFormat.setMaximumFractionDigits(int)

setMinimumFractionDigits

public void setMinimumFractionDigits(int newValue)
Устанавливает минимальное количество цифр в дробной части числа. При форматировании чисел, отличных от BigInteger и BigDecimal объектов, используется меньшее из значений newValue и 340. Отрицательные входные значения заменяются на 0.
Переопределяет:
setMinimumFractionDigits в классе NumberFormat
Параметры:
newValue - минимальное количество цифр дробной части; если меньше нуля, используется ноль. Конкретный подкласс может установить верхний предел для этого значения, соответствующий типу числа, которое форматируется.
См. также:
  • NumberFormat.setMinimumFractionDigits(int)

getMaximumIntegerDigits

public int getMaximumIntegerDigits()
Возвращает максимальное количество цифр в целой части числа. При форматировании чисел, отличных от BigInteger и BigDecimal объектов, используется меньшее из значений возвращаемого значения и 309.
Переопределяет:
getMaximumIntegerDigits в классе NumberFormat
Возвращает:
максимальное количество цифр
См. также:
  • setMaximumIntegerDigits(int)

getMinimumIntegerDigits

public int getMinimumIntegerDigits()
Возвращает минимальное количество цифр в целой части числа. При форматировании чисел, отличных от BigInteger и BigDecimal объектов, используется меньшее из значений возвращаемого значения и 309.
Переопределяет:
getMinimumIntegerDigits в классе NumberFormat
Возвращает:
минимальное количество цифр
См. также:
  • setMinimumIntegerDigits(int)
END_OF_DOCUMENT_MARKER

Максимальное количество знаков после запятой

public int getMaximumFractionDigits()
Возвращает максимальное количество знаков после запятой в числе. При форматировании чисел, не являющихся объектами BigInteger и BigDecimal, используется меньшее значение из возвращаемого и 340.
Переопределяет:
getMaximumFractionDigits в классе NumberFormat
Возвращает:
максимальное количество знаков после запятой.
См. также:
  • setMaximumFractionDigits(int)

Минимальное количество знаков после запятой

public int getMinimumFractionDigits()
Возвращает минимальное количество знаков после запятой в числе. При форматировании чисел, не являющихся объектами BigInteger и BigDecimal, используется меньшее значение из возвращаемого и 340.
Переопределяет:
getMinimumFractionDigits в классе NumberFormat
Возвращает:
минимальное количество знаков после запятой
См. также:
  • setMinimumFractionDigits(int)

Валюта

public Currency getCurrency()
Возвращает валюту, используемую этим форматом десятичных чисел при форматировании валютных значений. Валюта извлекается, вызывая метод DecimalFormatSymbols.getCurrency для символов этого формата.
Переопределяет:
getCurrency в классе NumberFormat
Возвращает:
валюту, используемую этим форматом десятичных чисел, или null
С:
1.4

Установить валюту

public void setCurrency(Currency currency)
Устанавливает валюту, используемую этим форматом чисел при форматировании валютных значений. Это не обновляет минимальное или максимальное количество знаков после запятой, используемых форматом. Валюта устанавливается вызовом DecimalFormatSymbols.setCurrency для символов этого формата.
Переопределяет:
setCurrency в классе NumberFormat
Параметры:
currency - новая валюта, которая будет использоваться этим форматом десятичных чисел
Исключения:
NullPointerException - если currency равно null
С:
1.4

Получить способ округления

public RoundingMode getRoundingMode()
Возвращает способ округления RoundingMode, используемый в этом формате DecimalFormat.
Переопределяет:
getRoundingMode в классе NumberFormat
Возвращает:
Способ округления, используемый для этого формата DecimalFormat.
С:
1.6
См. также:
  • setRoundingMode(RoundingMode)

Установить способ округления

public void setRoundingMode(RoundingMode roundingMode)
Устанавливает способ округления RoundingMode, используемый в этом формате DecimalFormat.
Переопределяет:
setRoundingMode в классе NumberFormat
Параметры:
roundingMode - Способ округления, который будет использоваться
Исключения:
NullPointerException - если roundingMode равно null.
С:
1.6
См. также:
  • getRoundingMode()

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/text/DecimalFormat.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API