Spec-Zone.ru › OpenJDK 25

Класс NumberFormat

java.lang.Object
java.text.Format
java.text.NumberFormat
Все реализуемые интерфейсы:
Serializable, Cloneable
Прямые известные подклассы:
ChoiceFormat, CompactNumberFormat, DecimalFormat
public abstract class NumberFormat extends Format
NumberFormat — абстрактный базовый класс для всех форматов чисел. Этот класс предоставляет интерфейс для форматирования и разбора чисел с учётом локали. Благодаря этому код может быть полностью независимым от локальных соглашений о десятичных разделителях, разделителях тысяч, используемых десятичных цифрах и даже от того, является ли формат чисел десятичным. Например, этот класс можно использовать в приложении для представления числа в денежном формате в соответствии с соглашениями выбранной локали.

Получение NumberFormat

Чтобы получить NumberFormat для локали по умолчанию, используйте один из статических фабричных методов, возвращающих конкретный подкласс NumberFormat. Ниже приведены примеры форматирования Number "2000.50" с локалью US в качестве локали по умолчанию.
  • Используйте getInstance() или getNumberInstance() для получения десятичного формата. Например, "2,000.5".
  • Используйте getIntegerInstance() для получения формата целых чисел. Например, "2,000".
  • Используйте getCurrencyInstance() для получения денежного формата чисел. Например, "$2,000.50".
  • Используйте getCompactNumberInstance() для получения компактного числового формата. Например, "2K".
  • Используйте getPercentInstance() для получения формата отображения процентов. Например, "200,050%".
Кроме того, если требуется NumberFormat для другой локали, используйте один из перегруженных фабричных методов, принимающих Locale в качестве параметра, например getIntegerInstance(Locale). Если установленная реализация службы с учётом локали не поддерживает заданную Locale, будет выполнен поиск по цепочке родительских локалей и использована поддерживаемая Locale.

Расширения локали

Поведение форматирования может меняться при использовании локали, содержащей любое из следующих расширений Unicode:
  • "nu" ( Система нумерации) — переопределяет используемые десятичные цифры
  • "rg" ( Переопределение региона) — переопределяет используемую страну
  • "cf" ( Стиль денежного формата) — переопределяет используемый стиль денежного формата

Если указаны и "nu", и "rg", десятичные цифры из расширения "nu" имеют приоритет над неявно заданными расширением "rg". Хотя расширения Unicode определяют различные ключи и значения, фактические реализации служб с учётом локали в среде выполнения Java могут не поддерживать какие-либо определённые атрибуты локали Unicode или пары ключ/тип.

Ниже приведён пример денежного формата локали "US" в бухгалтерском стиле:

NumberFormat.getCurrencyInstance(Locale.forLanguageTag("en-US-u-cf-account"));
При использовании этого стиля отрицательное значение заключается в скобки, а не предваряется знаком минус.

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

Ниже приведён пример форматирования и разбора с учётом локали:
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(Locale.US);
currencyFormat.format(100000); // returns "$100,000.00"
currencyFormat.parse("$100,000.00"); // returns 100000

Настройка NumberFormat

NumberFormat предоставляет API для настройки форматирования и разбора:
  • setParseIntegerOnly(boolean); если true, из числа, разобранного из String, будет возвращена только целая часть.
  • setMinimumFractionDigits(int); используйте этот метод для настройки количества ожидаемых цифр при форматировании. Аналогичным образом используйте любые другие методы задания минимальных или максимальных значений, а также дробной или целой части. Эти методы не влияют на поведение разбора.
  • setGroupingUsed(boolean); если true, отформатированные числа будут отображаться с разделителями групп разрядов. Кроме того, если false, при разборе не будут ожидаться разделители групп разрядов в анализируемой строке String.
  • setStrict(boolean); если true, разбор будет выполняться в строгом режиме. Описание поведения строгого разбора следует искать в реализующем его подклассе NumberFormat.

Чтобы получить более точный контроль над форматированием или разбором, можно проверить тип и безопасно преобразовать объект в реализующий подкласс NumberFormat; это даст доступ к дополнительным методам, определённым подклассом. Например:

NumberFormat nFmt = NumberFormat.getInstance(Locale.US);
if (nFmt instanceof DecimalFormat dFmt) {
    dFmt.setDecimalSeparatorAlwaysShown(true);
    dFmt.format(100); // returns "100."
}
Подкласс NumberFormat, возвращаемый фабричными методами, зависит от установленной реализации поставщика служб локали и не всегда может быть DecimalFormat или CompactNumberFormat.

Вы также можете использовать варианты методов parse и format с ParsePosition и FieldPosition, чтобы:

  • Последовательно разбирать фрагменты строки
  • Выравнивать десятичный разделитель и другие элементы
Например, можно выравнивать числа двумя способами:
  1. Если используется моноширинный шрифт с интервалами для выравнивания, можно передать FieldPosition при вызове форматирования, указав field = INTEGER_FIELD. При форматировании getEndIndex будет установлено смещение между последним символом целой части и десятичным разделителем. Добавьте в начало строки (desiredSpaceCount - getEndIndex) пробелов.
  2. При использовании пропорциональных шрифтов вместо добавления пробелов измерьте ширину строки в пикселях от начала до getEndIndex. Затем перед выводом текста сдвиньте перо на (desiredPixelWidth - widthToAlignmentPoint). Это также работает, если десятичного разделителя нет, но в конце могут находиться дополнительные символы, например скобки для отрицательных чисел: "(12)" для -12.

Нестрогий разбор

По умолчанию NumberFormat выполняет разбор в нестрогом режиме. В подклассах можно реализовать строгий разбор, переопределив и предоставив реализации необязательных методов isStrict() и setStrict(boolean).

Нестрогий разбор следует использовать, когда нужно извлечь число из строки, содержащей нечисловые значения или значения, не относящиеся к формату. Например, можно использовать денежный формат Locale.US, чтобы извлечь число 1000 из строки "$1,000.00 was paid".

Строгий разбор следует использовать, когда необходимо убедиться, что строка точно соответствует соглашениям локали, и тем самым проверить ввод. Например, успешный разбор числа 1000.55 из строки "1.000,55" подтверждает, что строка точно соответствует числовым соглашениям локали Locale.GERMANY.

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

Форматы чисел обычно не являются синхронизированными. Рекомендуется создавать отдельный экземпляр формата для каждого потока. Если несколько потоков одновременно обращаются к одному формату, синхронизацию необходимо обеспечить извне.
Требования к реализации:
Обработка нулевых параметров
  • Методы format(double, StringBuffer, FieldPosition), format(long, StringBuffer, FieldPosition) и parse(String, ParsePosition) могут выбросить NullPointerException, если какой-либо из их параметров имеет значение null. Подкласс может предоставить собственную реализацию и спецификацию обработки NullPointerException.
Режим округления по умолчанию
  • Реализация по умолчанию предоставляет режимы округления, определённые в RoundingMode, для форматирования чисел. Используется алгоритм округления к ближайшему чётному. Чтобы изменить режим округления, используйте setRoundingMode. Объект NumberFormat, возвращаемый статическими фабричными методами, настроен на округление чисел с плавающей точкой к ближайшему чётному при форматировании (см. RoundingMode.HALF_EVEN).
Начиная с версии:
1.1
Внешние спецификации
  • Язык разметки данных локалей Unicode (LDML)
См. также:
  • DecimalFormat
  • ChoiceFormat
  • CompactNumberFormat
  • Locale
  • Сериализованная форма

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

Модификатор и тип Класс Описание
static class  NumberFormat.Field
Определяет константы, используемые в качестве ключей атрибутов в AttributedCharacterIterator, возвращаемом из NumberFormat.formatToCharacterIterator, и в качестве идентификаторов полей в FieldPosition.
static enum  NumberFormat.Style
Стиль числового формата.

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

Модификатор и тип Поле Описание
static final int FRACTION_FIELD
Константа поля, используемая для создания объекта FieldPosition.
static final int INTEGER_FIELD
Константа поля, используемая для создания объекта FieldPosition.

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

NumberFormat()
Модификатор Конструктор Описание
protected
Единственный конструктор.

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

Модификатор и тип Метод Описание
Object clone()
Переопределяет Cloneable.
boolean equals(Object obj)
Сравнивает указанный объект с этим NumberFormat на равенство.
final String format(double number)
Специализация метода format.
abstract StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos)
Специализация метода format.
final String format(long number)
Специализация метода format.
abstract StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos)
Специализация метода format.
StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
Форматирует число и добавляет полученный текст в указанный строковый буфер.
static Locale[] getAvailableLocales()
Возвращает массив всех локалей, для которых методы get*Instance этого класса могут возвращать локализованные экземпляры.
static NumberFormat getCompactNumberInstance()
Возвращает компактный числовой формат для локали FORMAT по умолчанию со стилем формата "SHORT".
static NumberFormat getCompactNumberInstance(Locale locale, NumberFormat.Style formatStyle)
Возвращает компактный числовой формат для указанной locale и formatStyle.
Currency getCurrency()
Возвращает валюту, используемую этим числовым форматом при форматировании денежных значений.
static final NumberFormat getCurrencyInstance()
Возвращает денежный формат для текущей локали FORMAT по умолчанию.
static NumberFormat getCurrencyInstance(Locale inLocale)
Возвращает денежный формат для указанной локали.
static final NumberFormat getInstance()
Возвращает числовой формат общего назначения для текущей локали FORMAT по умолчанию.
static NumberFormat getInstance(Locale inLocale)
Возвращает числовой формат общего назначения для указанной локали.
static final NumberFormat getIntegerInstance()
Возвращает формат целых чисел для текущей локали FORMAT по умолчанию.
static NumberFormat getIntegerInstance(Locale inLocale)
Возвращает формат целых чисел для указанной локали.
int getMaximumFractionDigits()
Возвращает максимальное количество цифр, допустимое во дробной части числа при форматировании.
int getMaximumIntegerDigits()
Возвращает максимальное количество цифр, допустимое в целой части числа при форматировании.
int getMinimumFractionDigits()
Возвращает минимальное количество цифр, допустимое во дробной части числа при форматировании.
int getMinimumIntegerDigits()
Возвращает минимальное количество цифр, допустимое в целой части числа при форматировании.
static final NumberFormat getNumberInstance()
Возвращает числовой формат общего назначения для текущей локали FORMAT по умолчанию.
static NumberFormat getNumberInstance(Locale inLocale)
Возвращает числовой формат общего назначения для указанной локали.
static final NumberFormat getPercentInstance()
Возвращает процентный формат для текущей локали FORMAT по умолчанию.
static NumberFormat getPercentInstance(Locale inLocale)
Возвращает процентный формат для указанной локали.
RoundingMode getRoundingMode()
Возвращает RoundingMode, используемый в этом NumberFormat.
int hashCode()
Возвращает хеш-код этого NumberFormat.
boolean isGroupingUsed()
Возвращает true, если в этом формате используются разделители групп разрядов.
boolean isParseIntegerOnly()
Возвращает true, если этот формат разбирает числа только как целые.
boolean isStrict()
Возвращает true, если этот формат разбирает числа в строгом режиме; в противном случае — false.
Number parse(String source)
Разбирает текст с начала указанной строки и возвращает Number.
abstract Number parse(String source, ParsePosition parsePosition)
Разбирает текст с начала указанной строки и возвращает Number.
final Object parseObject(String source, ParsePosition pos)
Разбирает текст из указанной строки и возвращает объект.
void setCurrency(Currency currency)
Задаёт валюту, используемую этим числовым форматом при форматировании денежных значений.
void setGroupingUsed(boolean newValue)
Задаёт, будут ли в этом формате использоваться разделители групп разрядов.
void setMaximumFractionDigits(int newValue)
Задаёт максимальное количество цифр, допустимое во дробной части числа при форматировании.
void setMaximumIntegerDigits(int newValue)
Задаёт максимальное количество цифр, допустимое в целой части числа при форматировании.
void setMinimumFractionDigits(int newValue)
Задаёт минимальное количество цифр, допустимое во дробной части числа при форматировании.
void setMinimumIntegerDigits(int newValue)
Задаёт минимальное количество цифр, допустимое в целой части числа при форматировании.
void setParseIntegerOnly(boolean value)
Задаёт, следует ли разбирать числа только как целые.
void setRoundingMode(RoundingMode roundingMode)
Задаёт RoundingMode, используемый в этом NumberFormat.
void setStrict(boolean strict)
Изменяет значение нестрогости при разборе.

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

format, formatToCharacterIterator, parseObject

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

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

Подробное описание полей

INTEGER_FIELD

public static final int INTEGER_FIELD
Константа поля, используемая для создания объекта FieldPosition. Указывает, что должна быть возвращена позиция целой части отформатированного числа.
См. также:
  • FieldPosition
  • Значения константных полей

FRACTION_FIELD

public static final int FRACTION_FIELD
Константа поля, используемая для создания объекта FieldPosition. Указывает, что должна быть возвращена позиция дробной части отформатированного числа.
См. также:
  • FieldPosition
  • Значения константных полей

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

NumberFormat

protected NumberFormat()
Единственный конструктор. (Для вызова конструкторами подклассов, обычно неявно.)

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

format

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

Эта реализация извлекает значение числа с помощью Number.longValue() для всех значений целочисленных типов, которые можно преобразовать в long без потери информации, включая значения BigInteger с bit length меньше 64, и Number.doubleValue() для всех остальных типов. Затем она вызывает format(long,java.lang.StringBuffer,java.text.FieldPosition) или format(double,java.lang.StringBuffer,java.text.FieldPosition). Это может привести к потере информации о порядке величины и точности для значений BigInteger и BigDecimal.

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

parseObject

public final Object parseObject(String source, ParsePosition pos)
Разбирает текст указанной строки и создает объект.

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

Определено в:
parseObject в классе Format
Требования к реализации:
Эта реализация эквивалентна вызову parse(source, pos).
Параметры:
source — String для разбора
pos — объект ParsePosition с информацией об индексе и индексе ошибки, описанной выше.
Возвращает:
Объект Number, разобранный из строки. В случае ошибки возвращает null.
Исключения:
NullPointerException — если source или pos равно null.

format

public final String format(double number)
Специализированный вариант format.
Параметры:
number — число типа double для форматирования
Возвращает:
отформатированную строку
Исключения:
ArithmeticException — если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY
См. также:
  • Format.format(Object)

format

public final String format(long number)
Специализированный вариант format.
Параметры:
number — число типа long для форматирования
Возвращает:
отформатированную строку
Исключения:
ArithmeticException — если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY
См. также:
  • Format.format(Object)

format

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

format

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

parse

public abstract Number parse(String source, ParsePosition parsePosition)
Разбирает текст с начала указанной строки и создает Number.

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

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

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

parse

public Number parse(String source) throws ParseException
Разбирает текст с начала указанной строки и создает Number.

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

Параметры:
source — String, который нужно разобрать с начала строки.
Возвращает:
Объект Number, разобранный из строки.
Исключения:
ParseException — если разбор не удался
NullPointerException — если source равно null.
См. также:
  • isStrict()

isParseIntegerOnly

public boolean isParseIntegerOnly()
Возвращает true, если этот формат разбирает числа только как целые. Индекс ParsePosition будет установлен в позицию десятичного разделителя. Точный формат, принимаемый операцией разбора, зависит от локали. Например, в английской локали при значении ParseIntegerOnly true строка "123.45" будет разобрана как целое значение 123.
Возвращает:
true, если числа следует разбирать только как целые; в противном случае — false

setParseIntegerOnly

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

isStrict

public boolean isStrict()
Возвращает true, если этот формат строго разбирает числа; в противном случае — false.
Требования к реализации:
Реализация по умолчанию всегда выбрасывает UnsupportedOperationException. Подклассам следует переопределять этот метод при реализации строгого разбора.
Возвращает:
true, если этот формат строго разбирает числа; в противном случае — false
Исключения:
UnsupportedOperationException — если реализация этого метода не поддерживает эту операцию
Начиная с версии:
23
См. также:
  • Раздел о строгости разбора
  • setStrict(boolean)

setStrict

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

getInstance

public static final NumberFormat getInstance()
Возвращает универсальный формат чисел для текущей локали FORMAT по умолчанию. Это то же самое, что вызов getNumberInstance().
Возвращает:
экземпляр NumberFormat для универсального форматирования чисел

getInstance

public static NumberFormat getInstance(Locale inLocale)
Возвращает универсальный формат чисел для указанной локали. Это то же самое, что вызов getNumberInstance(inLocale).
Параметры:
inLocale — требуемая локаль
Возвращает:
экземпляр NumberFormat для универсального форматирования чисел

getNumberInstance

public static final NumberFormat getNumberInstance()
Возвращает универсальный формат чисел для текущей локали FORMAT по умолчанию.

Это эквивалентно вызову getNumberInstance(Locale.getDefault(Locale.Category.FORMAT)).

Возвращает:
экземпляр NumberFormat для универсального форматирования чисел
См. также:
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getNumberInstance

public static NumberFormat getNumberInstance(Locale inLocale)
Возвращает универсальный формат чисел для указанной локали.
Параметры:
inLocale — требуемая локаль
Возвращает:
экземпляр NumberFormat для универсального форматирования чисел

getIntegerInstance

public static final NumberFormat getIntegerInstance()
Возвращает формат целых чисел для текущей локали FORMAT по умолчанию. Возвращаемый формат чисел настроен на округление чисел с плавающей точкой до ближайшего целого с использованием округления к ближайшему четному (см. RoundingMode.HALF_EVEN) при форматировании и на разбор только целой части входной строки (см. isParseIntegerOnly).

Это эквивалентно вызову getIntegerInstance(Locale.getDefault(Locale.Category.FORMAT)).

Возвращает:
формат чисел для целочисленных значений
Начиная с версии:
1.4
См. также:
  • getRoundingMode()
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getIntegerInstance

public static NumberFormat getIntegerInstance(Locale inLocale)
Возвращает формат целых чисел для указанной локали. Возвращаемый формат чисел настроен на округление чисел с плавающей точкой до ближайшего целого с использованием округления к ближайшему четному (см. RoundingMode.HALF_EVEN) при форматировании и на разбор только целой части входной строки (см. isParseIntegerOnly).
Параметры:
inLocale — требуемая локаль
Возвращает:
формат чисел для целочисленных значений
Начиная с версии:
1.4
См. также:
  • getRoundingMode()

getCurrencyInstance

public static final NumberFormat getCurrencyInstance()
Возвращает формат валюты для текущей локали FORMAT по умолчанию.

Это эквивалентно вызову getCurrencyInstance(Locale.getDefault(Locale.Category.FORMAT)).

Возвращает:
экземпляр NumberFormat для форматирования валют
См. также:
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getCurrencyInstance

public static NumberFormat getCurrencyInstance(Locale inLocale)
Возвращает формат валюты для указанной локали.

Если указанная локаль содержит Unicode-расширение "cf" (стиль форматирования валюты), возвращаемый формат валюты использует этот стиль, если он доступен. В противном случае используется стиль формата валюты по умолчанию "standard". Например, если стиль задает "account", в некоторых локалях отрицательные суммы в валюте заключаются в круглые скобки.

Параметры:
inLocale — требуемая локаль
Возвращает:
экземпляр NumberFormat для форматирования валют
Внешние спецификации
  • Язык разметки данных локалей Unicode (LDML)

getPercentInstance

public static final NumberFormat getPercentInstance()
Возвращает формат процентов для текущей локали FORMAT по умолчанию.

Это эквивалентно вызову getPercentInstance(Locale.getDefault(Locale.Category.FORMAT)).

Возвращает:
экземпляр NumberFormat для форматирования процентов
См. также:
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getPercentInstance

public static NumberFormat getPercentInstance(Locale inLocale)
Возвращает формат процентов для указанной локали.
Параметры:
inLocale — требуемая локаль
Возвращает:
экземпляр NumberFormat для форматирования процентов

getCompactNumberInstance

public static NumberFormat getCompactNumberInstance()
Возвращает компактный формат чисел для локали FORMAT по умолчанию со стилем форматирования "SHORT".
Возвращает:
Экземпляр NumberFormat для компактного форматирования чисел
Начиная с версии:
12
См. также:
  • CompactNumberFormat
  • NumberFormat.Style
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getCompactNumberInstance

public static NumberFormat getCompactNumberInstance(Locale locale, NumberFormat.Style formatStyle)
Возвращает компактный формат чисел для указанной locale и formatStyle.
Параметры:
locale — требуемая локаль
formatStyle — стиль форматирования числа
Возвращает:
Экземпляр NumberFormat для компактного форматирования чисел
Исключения:
NullPointerException — если locale или formatStyle равно null
Начиная с версии:
12
См. также:
  • CompactNumberFormat
  • NumberFormat.Style
  • Locale

getAvailableLocales

public static Locale[] getAvailableLocales()
Возвращает массив всех локалей, для которых методы get*Instance этого класса могут возвращать локализованные экземпляры. Возвращаемый массив представляет собой объединение локалей, поддерживаемых средой выполнения Java и установленными реализациями NumberFormatProvider. Как минимум возвращаемый массив должен содержать экземпляр Locale, равный Locale.ROOT, и экземпляр Locale, равный Locale.US.
Возвращает:
Массив локалей, для которых доступны локализованные экземпляры NumberFormat.

hashCode

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

equals

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

clone

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

isGroupingUsed

public boolean isGroupingUsed()
Возвращает true, если в этом формате используется группировка. Это относится как к форматированию, так и к разбору. Разделитель групп и размер каждой группы зависят от локали и определяются подклассами NumberFormat. Например, рассмотрим NumberFormat, в котором в качестве разделителя групп используется символ ",", а размер группы равен 3.
  • Форматирование 1234567 с включенной группировкой возвращает "1,234,567"
  • Разбор "1,234,567" с выключенной группировкой возвращает 1
  • Разбор "1,234,567" с выключенной группировкой при условии, что isStrict(), возвращает true и выбрасывает ParseException
Возвращает:
true, если группировка используется; в противном случае — false
См. также:
  • setGroupingUsed(boolean)
  • Раздел о строгости разбора

setGroupingUsed

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

getMaximumIntegerDigits

public int getMaximumIntegerDigits()
Возвращает максимальное количество цифр, допустимое в целой части числа при форматировании.
Возвращает:
максимальное количество цифр
См. также:
  • setMaximumIntegerDigits(int)

setMaximumIntegerDigits

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

getMinimumIntegerDigits

public int getMinimumIntegerDigits()
Возвращает минимальное количество цифр, допустимое в целой части числа при форматировании.
Возвращает:
минимальное количество цифр
См. также:
  • setMinimumIntegerDigits(int)

setMinimumIntegerDigits

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

getMaximumFractionDigits

public int getMaximumFractionDigits()
Возвращает максимальное количество цифр, допустимое в дробной части числа при форматировании.
Возвращает:
максимальное количество цифр.
См. также:
  • setMaximumFractionDigits(int)

setMaximumFractionDigits

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

getMinimumFractionDigits

public int getMinimumFractionDigits()
Возвращает минимальное количество цифр, допустимое в дробной части числа при форматировании.
Возвращает:
минимальное количество цифр
См. также:
  • setMinimumFractionDigits(int)

setMinimumFractionDigits

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

getCurrency

public Currency getCurrency()
Возвращает валюту, используемую этим форматом чисел при форматировании денежных значений. Начальное значение определяется с учетом локали. Возвращаемое значение может быть null, если не удалось определить допустимую валюту и валюта не была задана с помощью setCurrency(Currency).
Требования к реализации:
Реализация по умолчанию всегда выбрасывает UnsupportedOperationException. Подклассам следует переопределить этот метод, если требуется форматирование валют.
Возвращает:
валюту, используемую этим форматом чисел, или null
Выбрасывает:
UnsupportedOperationException — если реализация этого метода не поддерживает данную операцию
Начиная с:
1.4

setCurrency

public void setCurrency(Currency currency)
Задает валюту, используемую этим форматом чисел при форматировании денежных значений. Это не изменяет минимальное или максимальное количество цифр дробной части, используемое форматом чисел.
Требования к реализации:
Реализация по умолчанию всегда выбрасывает UnsupportedOperationException. Подклассам следует переопределить этот метод, если требуется форматирование валют.
Параметры:
currency — новая валюта, используемая этим форматом чисел
Выбрасывает:
NullPointerException — если currency имеет значение null
UnsupportedOperationException — если реализация этого метода не поддерживает данную операцию
Начиная с:
1.4

getRoundingMode

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

setRoundingMode

public void setRoundingMode(RoundingMode roundingMode)
Задает RoundingMode, используемый в этом NumberFormat.
Требования к реализации:
Реализация по умолчанию всегда выбрасывает UnsupportedOperationException. Подклассам, поддерживающим различные режимы округления, следует переопределить этот метод.
Параметры:
roundingMode — RoundingMode, который будет использоваться
Выбрасывает:
NullPointerException — если roundingMode имеет значение null
UnsupportedOperationException — если реализация этого метода не поддерживает данную операцию
Начиная с:
1.6
См. также:
  • getRoundingMode()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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/NumberFormat.html

Spec-Zone.ru

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