Spec-Zone.ru › OpenJDK 25

Класс CompactNumberFormat

java.lang.Object
java.text.Format
java.text.NumberFormat
java.text.CompactNumberFormat
Все реализованные интерфейсы:
Serializable, Cloneable
public final class CompactNumberFormat extends NumberFormat

CompactNumberFormat — конкретный подкласс NumberFormat, который форматирует десятичное число в локализованном компактном формате. Компактное форматирование чисел предназначено для условий ограниченного пространства. Например, в US locale отформатированное число 7M отображается вместо 7,000,000.00. Класс CompactNumberFormat определен спецификацией LDML для компактных форматов чисел.

Получение CompactNumberFormat

Чтобы получить компактный формат чисел, воспользуйтесь одним из способов, перечисленных ниже.
  • Используйте фабричный метод NumberFormat.getCompactNumberInstance(), чтобы получить формат для локали по умолчанию со стилем SHORT.
  • Используйте фабричный метод NumberFormat.getCompactNumberInstance(Locale, Style), чтобы получить формат для другой локали и задать стиль.
  • Используйте один из конструкторов CompactNumberFormat, например CompactNumberFormat(decimalPattern, symbols, compactPatterns), чтобы получить CompactNumberFormat с дополнительными настройками.

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

Стиль

При использовании NumberFormat.getCompactNumberInstance(Locale, Style) компактный формат можно получить в стиле SHORT или LONG. Например, экземпляр компактного формата чисел в стиле SHORT для US locale форматирует 10000 как "10K". Однако экземпляр в стиле LONG для той же локали форматирует 10000 как "10 thousand".

Использование CompactNumberFormat

Ниже приведен пример локализованного форматирования и разбора:
NumberFormat compactFormat = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);
compactFormat.format(1000); // returns "1K"
compactFormat.parse("1K"); // returns 1000

Форматирование

По умолчанию форматирование возвращает отформатированную строку без дробных цифр, однако пользователи могут использовать метод setMinimumFractionDigits(int), чтобы включить дробную часть. Число 1000.0 или 1000 форматируется как "1K", а не как "1.00K" (в US locale). Поэтому предоставленные для форматирования шаблоны содержат только минимальное количество целых цифр, префикс и/или суффикс, но не дробную часть. Например, используются шаблоны {"", "", "", 0K, 00K, ...}. Если выбранный для форматирования числа шаблон — "0" (специальный шаблон), заданный явно или используемый по умолчанию, то применяется общее форматирование чисел, предоставляемое DecimalFormat для указанной локали.

Округление

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

Разбор

По умолчанию при разборе разделитель групп разрядов не допускается, пока использование группировки не будет установлено в true с помощью метода setGroupingUsed(boolean). Разбор дробной части зависит от isParseIntegerOnly(). Например, если параметру «разбирать только целую часть» задано значение true, дробная часть пропускается.

Шаблоны компактных чисел

compactPatterns в CompactNumberFormat(decimalPattern, symbols, compactPatterns) представлены в виде последовательности строк, где каждая строка является pattern, используемым для форматирования диапазона чисел.

Пример шаблонов компактных чисел в стиле SHORT для US locale: {"", "", "", "0K", "00K", "000K", "0M", "00M", "000M", "0B", "00B", "000B", "0T", "00T", "000T"}, охватывающие диапазон от 100 до 1014. Число шаблонов может быть любым; они строго индексируются, начиная с диапазона 100. Например, в приведенных выше шаблонах шаблон с индексом 3 ("0K") используется для форматирования чисел в диапазоне 1000 <= number < 10000, шаблон с индексом 4 ("00K") — для форматирования чисел в диапазоне 10000 <= number < 100000 и так далее.

В большинстве локалей шаблоны для диапазона 100-102 являются пустыми строками, что неявно означает использование специального шаблона "0". Специальный шаблон "0" используется для любого диапазона, для которого не задан компактный шаблон. Этот специальный шаблон может быть явно указан для конкретного диапазона или считаться шаблоном по умолчанию для пустой строки.

Отрицательные подшаблоны

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

Экранирование специальных символов

Многие символы в компактном шаблоне воспринимаются буквально: при разборе они сопоставляются с входными данными, а при форматировании выводятся без изменений. Специальные символы, напротив, обозначают другие символы, строки или классы символов. Если такие символы должны присутствовать в префиксе или суффиксе как литералы, их необходимо заключать в одинарные кавычки ' (U+0027), если не указано иное. Например, 0क'.'.

Формы множественного числа

CompactNumberFormat поддерживают шаблоны как для единственного, так и для множественного числа в компактной форме. Для формы множественного числа Pattern должен состоять из PluralPattern(s), разделенных пробелом ' ' (U+0020) и перечисленных в фигурных скобках '{' (U+007B) и '}' (U+007D). В этом формате каждый PluralPattern состоит из count, за которым следует двоеточие ':' (U+003A) и SimplePattern. Поскольку пробел используется для разделения последующих PluralPatterns, его необходимо заключать в кавычки, если он используется буквально в prefix или suffix.

Например, шаблон, представляющий миллионы (106 ), для локали США можно задать как SimplePattern: "0 Million", а для немецкой локали — как PluralPattern: "{one:0' 'Million other:0' 'Millionen}".

Компактный шаблон имеет следующий синтаксис, при этом count соответствует правилам LDML для правил форм множественного числа языков:

Pattern:
        SimplePattern
        '{' PluralPattern [' ' PluralPattern]optional '}'
SimplePattern:
        PositivePattern
        PositivePattern [; NegativePattern]optional
PluralPattern:
        Count:SimplePattern
Count:
        "zero" / "one" / "two" / "few" / "many" / "other"
PositivePattern:
        Prefixoptional MinimumInteger Suffixoptional
NegativePattern:
       Prefixoptional MinimumInteger Suffixoptional
Prefix:
     Any characters except the special pattern characters
Suffix:
     Any characters except the special pattern characters
MinimumInteger:
     0
     0 MinimumInteger
Начиная с версии:
12
Внешние спецификации
  • Язык разметки данных локалей Unicode (LDML)
См. также:
  • NumberFormat.Style
  • NumberFormat
  • DecimalFormat
  • Locale
  • Сериализованная форма

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

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

NumberFormat.Field, NumberFormat.Style

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

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

FRACTION_FIELD, INTEGER_FIELD

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

Конструктор Описание
CompactNumberFormat(String decimalPattern, DecimalFormatSymbols symbols, String[] compactPatterns)
Создает CompactNumberFormat, используя заданный десятичный шаблон, символы десятичного формата и компактные шаблоны.
CompactNumberFormat(String decimalPattern, DecimalFormatSymbols symbols, String[] compactPatterns, String pluralRules)
Создает CompactNumberFormat, используя заданный десятичный шаблон, символы десятичного формата, компактные шаблоны и правила форм множественного числа.

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

Модификатор и тип Метод Описание
CompactNumberFormat clone()
Создает и возвращает копию этого экземпляра CompactNumberFormat.
boolean equals(Object obj)
Сравнивает заданный объект с этим CompactNumberFormat на равенство.
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 fieldPosition)
Форматирует число, создавая строку, представляющую его компактную форму.
AttributedCharacterIterator formatToCharacterIterator(Object obj)
Форматирует объект, создавая AttributedCharacterIterator.
int getGroupingSize()
Возвращает размер группы разрядов.
RoundingMode getRoundingMode()
Возвращает используемый в этом CompactNumberFormat режим RoundingMode.
int hashCode()
Возвращает хеш-код этого CompactNumberFormat.
boolean isGroupingUsed()
Возвращает true, если в этом формате используется группировка.
boolean isParseBigDecimal()
Возвращает, возвращает ли метод parse(String, ParsePosition) значение BigDecimal.
boolean isParseIntegerOnly()
Возвращает true, если этот формат разбирает только целую часть числового компонента компактного числа.
boolean isStrict()
Возвращает true, если этот формат выполняет строгий разбор чисел; в противном случае — false.
Number parse(String text, ParsePosition pos)
Разбирает текст с начала заданной строки, создавая Number.
void setGroupingSize(int newValue)
Задает размер группы разрядов.
void setGroupingUsed(boolean newValue)
Задает, будет ли в этом формате использоваться группировка.
void setMaximumFractionDigits(int newValue)
Задает максимальное количество цифр в дробной части числа при форматировании.
void setMaximumIntegerDigits(int newValue)
Задает максимальное количество цифр в целой части числа при форматировании.
void setMinimumFractionDigits(int newValue)
Задает минимальное количество цифр в дробной части числа при форматировании.
void setMinimumIntegerDigits(int newValue)
Задает минимальное количество цифр в целой части числа при форматировании.
void setParseBigDecimal(boolean newValue)
Задает, возвращает ли метод parse(String, ParsePosition) значение BigDecimal.
void setParseIntegerOnly(boolean value)
Задает, будет ли этот формат разбирать только целую часть числового компонента компактного числа.
void setRoundingMode(RoundingMode roundingMode)
Задает используемый в этом CompactNumberFormat режим RoundingMode.
void setStrict(boolean strict)
Изменяет значение нестрогости при разборе.
String toString()
Возвращает строку, идентифицирующую этот CompactNumberFormat, для отладки.

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

format, format, getAvailableLocales, getCompactNumberInstance, getCompactNumberInstance, getCurrency, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getMaximumFractionDigits, getMaximumIntegerDigits, getMinimumFractionDigits, getMinimumIntegerDigits, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, parse, parseObject, setCurrency

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

format, parseObject

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

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

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

CompactNumberFormat

public CompactNumberFormat(String decimalPattern, DecimalFormatSymbols symbols, String[] compactPatterns)
Создает CompactNumberFormat с использованием заданного десятичного шаблона, символов десятичного формата и компактных шаблонов. Чтобы получить экземпляр CompactNumberFormat со стандартными компактными шаблонами для Locale и Style, рекомендуется использовать фабричные методы, предоставляемые NumberFormat для компактного форматирования чисел.

Ниже приведен пример использования конструктора:

String[] compactPatterns = {"", "", "", "a lot"};
NumberFormat fmt = new CompactNumberFormat("00", DecimalFormatSymbols.getInstance(Locale.US), compactPatterns);
fmt.format(1); // returns "01"
fmt.format(1000); // returns "a lot"
Параметры:
decimalPattern — десятичный шаблон для форматирования чисел общего назначения
symbols — набор используемых символов
compactPatterns — массив компактных шаблонов чисел
Исключения:
NullPointerException — если любой из заданных аргументов равен null
IllegalArgumentException — если заданный decimalPattern или массив compactPatterns содержит недопустимый шаблон либо если в массиве компактных шаблонов встречается null
См. также:
  • DecimalFormat(java.lang.String, DecimalFormatSymbols)
  • DecimalFormatSymbols

CompactNumberFormat

public CompactNumberFormat(String decimalPattern, DecimalFormatSymbols symbols, String[] compactPatterns, String pluralRules)
Создает CompactNumberFormat с использованием заданного десятичного шаблона, символов десятичного формата, компактных шаблонов и правил множественного числа. Чтобы получить экземпляр CompactNumberFormat со стандартными компактными шаблонами для Locale, Style и pluralRules, рекомендуется использовать фабричные методы, предоставляемые NumberFormat для компактного форматирования чисел. Например, NumberFormat.getCompactNumberInstance(Locale, Style).
Параметры:
decimalPattern — десятичный шаблон для форматирования чисел общего назначения
symbols — набор используемых символов
compactPatterns — массив компактных шаблонов чисел
pluralRules — строка, задающая правила множественного числа, связывающие ключевое слово Count, например «one», с фактическим целым числом. Синтаксис определен в синтаксисе правил множественного числа Консорциума Unicode
Исключения:
NullPointerException — если любой из заданных аргументов равен null
IllegalArgumentException — если заданный decimalPattern или массив compactPatterns содержит недопустимый шаблон, если в массиве компактных шаблонов встречается null либо если заданный pluralRules имеет недопустимый синтаксис
Начиная с:
14
Внешние спецификации
  • Язык разметки данных локали Unicode (LDML)
См. также:
  • DecimalFormat(java.lang.String, DecimalFormatSymbols)
  • DecimalFormatSymbols

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

format

public final StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition fieldPosition)
Форматирует число, создавая строку, представляющую его компактную форму. Число может принадлежать к любому подклассу Number.
Переопределяет:
format в классе NumberFormat
Параметры:
number — число для форматирования
toAppendTo — StringBuffer, к которому добавляется форматированный текст
fieldPosition — отслеживает позицию поля в возвращаемой строке. Например, при форматировании числа 123456789 в US locale, если заданный fieldPosition — это NumberFormat.INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены в 0 и 3 соответственно для выходной строки 123M. Аналогичным образом позиции полей префикса и суффикса можно получить с помощью NumberFormat.Field.PREFIX и NumberFormat.Field.SUFFIX соответственно.
Возвращает:
toAppendTo, переданный в качестве StringBuffer
Исключения:
IllegalArgumentException — если number равно null или не является экземпляром Number
NullPointerException — если toAppendTo или fieldPosition равно null
ArithmeticException — если требуется округление, а в качестве режима округления задан RoundingMode.UNNECESSARY
См. также:
  • FieldPosition

format

public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
Форматирует число типа double, создавая строку, представляющую его компактную форму.
Определено в:
format в классе NumberFormat
Параметры:
number — число типа double для форматирования
result — место добавления текста
fieldPosition — отслеживает позицию поля в возвращаемой строке. Например, при форматировании числа 1234567.89 в US locale, если заданный fieldPosition — это NumberFormat.INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены в 0 и 1 соответственно для выходной строки 1M. Аналогичным образом позиции полей префикса и суффикса можно получить с помощью NumberFormat.Field.PREFIX и NumberFormat.Field.SUFFIX соответственно.
Возвращает:
result, переданный в качестве StringBuffer
Исключения:
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 в US locale, если заданный fieldPosition — это NumberFormat.INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены в 0 и 3 соответственно для выходной строки 123M. Аналогичным образом позиции полей префикса и суффикса можно получить с помощью NumberFormat.Field.PREFIX и NumberFormat.Field.SUFFIX соответственно.
Возвращает:
result, переданный в качестве StringBuffer
Исключения:
NullPointerException — если result или fieldPosition равно null
ArithmeticException — если требуется округление, а в качестве режима округления задан RoundingMode.UNNECESSARY
См. также:
  • FieldPosition

formatToCharacterIterator

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

Каждый ключ атрибута AttributedCharacterIterator будет иметь тип NumberFormat.Field, а значение атрибута будет совпадать с ключом атрибута. Части префикса и суффикса возвращенного итератора (если они есть) представлены атрибутами NumberFormat.Field.PREFIX и NumberFormat.Field.SUFFIX соответственно.

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

parse

public Number parse(String text, ParsePosition pos)
Разбирает текст с начала заданной строки, чтобы получить Number.

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

Этот метод возвращает Long, если это возможно (например, значение входит в диапазон [Long.MIN_VALUE, Long.MAX_VALUE] и не содержит дробной части); в противном случае возвращается Double.

Возвращаемое значение — числовая часть заданного текста, умноженная на числовое значение присоединенного аффикса (например, "K" = 1000 в US locale).

CompactNumberFormat может сопоставлять префикс/суффикс по умолчанию и компактный префикс/суффикс взаимозаменяемо.

Разбор может выполняться в строгом или нестрогом режиме; по умолчанию используется нестрогий режим.

Разбор завершается неудачей в нестрогом режиме, если префикс и/или суффикс не пусты и не могут быть найдены из-за преждевременного завершения разбора либо если первый символ после префикса не может быть разобран.

Разбор завершается неудачей в строгом режиме, если в text выполняется одно из следующих условий:

  • Не найден префикс по умолчанию или компактный префикс. Например, префикс формата валюты Locale.US: «$»
  • Не найден суффикс по умолчанию или компактный суффикс. Например, компактный суффикс Locale.US NumberFormat.Style.SHORT: «K»
  • isGroupingUsed() возвращает false, и обнаружен разделитель групп разрядов
  • isGroupingUsed() возвращает true, и не соблюдается значение getGroupingSize()
  • isParseIntegerOnly() возвращает true, и обнаружен десятичный разделитель
  • isGroupingUsed() возвращает true, а isParseIntegerOnly() возвращает false, и разделитель групп разрядов встречается после десятичного разделителя
  • Обнаружены любые другие символы, не являющиеся ожидаемыми символами или цифрами, входящими в числовую часть

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

  • Если isParseBigDecimal() имеет значение false (по умолчанию), большинство целочисленных значений возвращается в виде объектов Long независимо от их записи: "17K" и "17.000K" разбираются как Long.valueOf(17000). Если значение не помещается в Long, результат возвращается как Double. Сюда входят значения с дробной частью, бесконечные значения, NaN и значение -0.0.

    Вызывающий код может использовать методы Number doubleValue, longValue и т. д., чтобы получить нужный тип.

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

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

CompactNumberFormat не разбирает научную нотацию. Например, разбор строки "1.05E4K" в US locale останавливается на символе 'E' и возвращает 1.05.

Определено в:
parse в классе NumberFormat
Параметры:
text — строка для разбора
pos — объект ParsePosition с информацией об индексе и индексе ошибки, как описано выше
Возвращает:
разобранное значение или null, если разбор не удался
Исключения:
NullPointerException — если text или pos равно null
См. также:
  • NumberFormat.isStrict()

setMaximumIntegerDigits

public void setMaximumIntegerDigits(int newValue)
Задает максимальное количество цифр, допустимое в целой части числа при форматировании. maximumIntegerDigits должно быть ≥ minimumIntegerDigits. Если новое значение maximumIntegerDigits меньше текущего значения minimumIntegerDigits, то minimumIntegerDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.

Максимально допустимая целая часть составляет 309 цифр. Если newValue > 309, максимальное количество целых цифр устанавливается равным 309.

Переопределяет:
setMaximumIntegerDigits в классе NumberFormat
Параметры:
newValue — максимальное количество отображаемых целых цифр.
См. также:
  • NumberFormat.getMaximumIntegerDigits()

setMinimumIntegerDigits

public void setMinimumIntegerDigits(int newValue)
Задает минимальное количество цифр, допустимое в целой части числа при форматировании. minimumIntegerDigits должно быть ≤ maximumIntegerDigits. Если новое значение minimumIntegerDigits превышает текущее значение maximumIntegerDigits, то maximumIntegerDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.

Максимально допустимая целая часть составляет 309 цифр. Если newValue > 309, минимальное количество целых цифр устанавливается равным 309.

Переопределяет:
setMinimumIntegerDigits в классе NumberFormat
Параметры:
newValue — минимальное количество отображаемых целых цифр.
См. также:
  • NumberFormat.getMinimumIntegerDigits()

setMinimumFractionDigits

public void setMinimumFractionDigits(int newValue)
Задает минимальное количество цифр, допустимое в дробной части числа при форматировании. minimumFractionDigits должно быть ≤ maximumFractionDigits. Если новое значение minimumFractionDigits превышает текущее значение maximumFractionDigits, то maximumFractionDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.

Максимально допустимая дробная часть составляет 340 цифр. Если newValue > 340, минимальное количество дробных цифр устанавливается равным 340.

Переопределяет:
setMinimumFractionDigits в классе NumberFormat
Параметры:
newValue — минимальное количество отображаемых дробных цифр.
См. также:
  • NumberFormat.getMinimumFractionDigits()

setMaximumFractionDigits

public void setMaximumFractionDigits(int newValue)
Задает максимальное количество цифр, допустимое в дробной части числа при форматировании. maximumFractionDigits должно быть ≥ minimumFractionDigits. Если новое значение maximumFractionDigits меньше текущего значения minimumFractionDigits, то minimumFractionDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.

Максимально допустимая дробная часть составляет 340 цифр. Если newValue > 340, максимальное количество дробных цифр устанавливается равным 340.

Переопределяет:
setMaximumFractionDigits в классе NumberFormat
Параметры:
newValue — максимальное количество отображаемых дробных цифр.
См. также:
  • NumberFormat.getMaximumFractionDigits()

getRoundingMode

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

setRoundingMode

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

getGroupingSize

public int getGroupingSize()
Возвращает размер группы. Размер группы — это количество цифр между разделителями групп разрядов в целой части числа. Например, для компактного числа "12,347 trillion" в US locale размер группы равен 3.
Возвращает:
размер группы
См. также:
  • setGroupingSize(int)
  • NumberFormat.isGroupingUsed()
  • DecimalFormatSymbols.getGroupingSeparator()

setGroupingSize

public void setGroupingSize(int newValue)
Задает размер группы. Размер группы — это количество цифр между разделителями групп разрядов в целой части числа. Например, для компактного числа "12,347 trillion" в US locale размер группы равен 3. Размер группы должен быть не меньше нуля и не больше 127.
Параметры:
newValue — новый размер группы
Исключения:
IllegalArgumentException — если newValue отрицательно или превышает 127
См. также:
  • getGroupingSize()
  • NumberFormat.setGroupingUsed(boolean)
  • DecimalFormatSymbols.setGroupingSeparator(char)

isGroupingUsed

public boolean isGroupingUsed()
Возвращает true, если в этом формате используется группировка. Например, при включенной группировке и размере группы 3 число 12346567890987654 может быть отформатировано как "12,347 trillion" в US locale. Разделитель групп разрядов зависит от локали.
Переопределяет:
isGroupingUsed в классе NumberFormat
Возвращает:
true, если используется группировка; в противном случае — false
См. также:
  • setGroupingUsed(boolean)

setGroupingUsed

public void setGroupingUsed(boolean newValue)
Задает, будет ли в этом формате использоваться группировка.
Переопределяет:
setGroupingUsed в классе NumberFormat
Параметры:
newValue — true, если используется группировка; в противном случае — false
См. также:
  • isGroupingUsed()

isParseIntegerOnly

public boolean isParseIntegerOnly()
Возвращает true, если этот формат разбирает только целую часть числового компонента компактного числа. Разбор целого числа означает, что учитывается только целая часть числового компонента; префикс/суффикс по-прежнему учитывается при вычислении результирующего значения. Например, в US locale, если этот метод возвращает true, строка "1234.78 thousand" будет разобрана как значение 1234000 (1234 (целая часть) * 1000 (тысяча)), а дробная часть будет пропущена. Точный формат, принимаемый операцией разбора, зависит от локали.
Переопределяет:
isParseIntegerOnly в классе NumberFormat
Требования к реализации:
Эта реализация устанавливает индекс ParsePosition не в позицию десятичного символа, а в конец строки.
Возвращает:
true, если компактные числа следует разбирать только как целые; в противном случае — false

setParseIntegerOnly

public void setParseIntegerOnly(boolean value)
Задает, будет ли этот формат разбирать только целую часть числового компонента компактного числа.
Переопределяет:
setParseIntegerOnly в классе NumberFormat
Параметры:
value — true, если компактные числа следует разбирать только как целые; в противном случае — false
См. также:
  • isParseIntegerOnly()

isStrict

public boolean isStrict()
Возвращает true, если этот формат разбирает числа в строгом режиме; в противном случае — false.
Переопределяет:
isStrict в классе NumberFormat
Возвращает:
true, если этот формат разбирает числа в строгом режиме; в противном случае — false
Начиная с:
23
См. также:
  • setStrict(boolean)
  • parse(String, ParsePosition)

setStrict

public void setStrict(boolean strict)
Изменяет степень строгости разбора. Разбор может выполняться в строгом или нестрогом режиме; по умолчанию используется нестрогий режим.
Переопределяет:
setStrict в классе NumberFormat
Параметры:
strict — true, если разбор должен выполняться в строгом режиме; в противном случае — false
Начиная с:
23
См. также:
  • isStrict()
  • parse(String, ParsePosition)

isParseBigDecimal

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

setParseBigDecimal

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

equals

public boolean equals(Object obj)
Сравнивает указанный объект с этим CompactNumberFormat на равенство. Возвращает true, если объект также является CompactNumberFormat и оба формата форматируют любое значение одинаково.
Переопределяет:
equals в классе NumberFormat
Требования к реализации:
Этот метод проверяет равенство, определяя идентичность класса на основе getClass(), а не instanceof. Поэтому в методах equals подклассов ни один экземпляр этого класса не должен считаться равным экземпляру подкласса.
Параметры:
obj — объект для сравнения
Возвращает:
true, если этот объект равен другому CompactNumberFormat
См. также:
  • Object.hashCode()

hashCode

public int hashCode()
Возвращает хеш-код этого CompactNumberFormat.
Переопределяет:
hashCode в классе NumberFormat
Требования к реализации:
Для вычисления значения хеш-кода используются нетранзиентные поля экземпляра этого класса, что соответствует контракту, определенному в Objects.hashCode(Object)
Возвращает:
хеш-код этого CompactNumberFormat
См. также:
  • Object.hashCode()

toString

public String toString()
Возвращает строку, идентифицирующую этот CompactNumberFormat, для отладки.
Переопределяет:
toString в классе Object
Возвращает:
строку, идентифицирующую этот CompactNumberFormat, для отладки

clone

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.base/java/text/CompactNumberFormat.html

Spec-Zone.ru

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