Spec-Zone.ru › OpenJDK 24

Класс 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.

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

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

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

Ниже приведен пример формата валюты локали "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 вернёт только целую часть числа, полученного из строки.
  • setMinimumFractionDigits(int); Используется для изменения ожидаемых цифр при форматировании. Используйте другие методы установки минимума/максимума или дробной/целой части аналогичным образом.
  • setGroupingUsed(boolean); когда true, отформатированные числа будут отображаться с разделителями группировки. Кроме того, при false разбор не будет ожидать разделителей группировки в анализируемой строке.
  • 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 будет установлен на смещение между последним символом целой части и десятичной. Добавьте (желаемое количество пробелов - getEndIndex) пробелов в начало строки.
  2. Если вы используете пропорциональный шрифт, вместо заполнения пробелами, измерьте ширину строки в пикселях от начала до getEndIndex. Затем переместите перо на (желаемая ширина в пикселях - ширина до точки выравнивания) перед отрисовкой текста. Это также работает, где нет десятичной точки, но, возможно, есть дополнительные символы в конце, например, со скобками в отрицательных числах: "(12)" для -12.

Смягчение условий

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

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

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

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

Форматы чисел обычно не синхронизированы. Рекомендуется создавать отдельные экземпляры формата для каждого потока. Если несколько потоков одновременно обращаются к формату, необходимо выполнить внешнюю синхронизацию.
Требования к реализации:
Обработка параметров null
  • Методы format(double, StringBuffer, FieldPosition), format(long, StringBuffer, FieldPosition) и parse(String, ParsePosition) могут генерировать NullPointerException, если любой из их параметров имеет значение null. Подкласс может предоставить собственную реализацию и спецификацию по NullPointerException.
Стандартное округление
  • Реализация по умолчанию предоставляет режимы округления, определённые в RoundingMode для форматирования чисел. Она использует алгоритм округления "половина-чётная" (round half-even algorithm). Чтобы изменить режим округления, используйте setRoundingMode. NumberFormat, возвращаемое статическими фабричными методами, настроен для округления чисел с плавающей точкой с помощью алгоритма округления "половина-чётная" (см. RoundingMode.HALF_EVEN) для форматирования.
С тех пор:
1.1
Внешние спецификации
  • Язык разметки данных локали Юникода (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)
Специализация формата.
abstract StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos)
Специализация формата.
final String format(long number)
Специализация формата.
abstract StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos)
Специализация формата.
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)
Устанавливает максимальное количество цифр, разрешенных в дробной части числа. maximumFractionDigits должно быть ≥ minimumFractionDigits.
void setMaximumIntegerDigits(int newValue)
Устанавливает максимальное количество цифр, разрешенных в целой части числа. maximumIntegerDigits должно быть ≥ minimumIntegerDigits.
void setMinimumFractionDigits(int newValue)
Устанавливает минимальное количество цифр, разрешенных в дробной части числа. minimumFractionDigits должно быть ≤ maximumFractionDigits.
void setMinimumIntegerDigits(int newValue)
Устанавливает минимальное количество цифр, разрешенных в целой части числа. minimumIntegerDigits должно быть ≤ maximumIntegerDigits.
void setParseIntegerOnly(boolean value)
Устанавливает, должны ли числа анализироваться только как целые.
void setRoundingMode(RoundingMode roundingMode)
Устанавливает RoundingMode, используемый в этом NumberFormat.
void setStrict(boolean strict)
Изменить значение толерантности для анализа.

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

format, formatToCharacterIterator, parseObject

Методы, объявленные в классе java.lang.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 - буфер строк, в который добавляется отформатированный текст
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 - строка для разбора
pos - объект ParsePosition с информацией об индексе и индексе ошибки, как описано выше.
Возвращает:
Число, разобранное из строки. В случае ошибки возвращает null.
Исключение:
NullPointerException - если source или pos равно null.

format

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

format

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

format

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

format

public abstract StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos)
Специализация format.
Параметры:
number - целое число long для форматирования
toAppendTo - буфер строк, в который добавляется отформатированный текст
pos - отслеживает позицию поля в возвращенной строке. Например, при форматировании числа 123456789 в локали Locale.US, если заданный fieldPosition равен INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены соответственно в 0 и 11 для выходной строки 123,456,789.
Возвращает:
отформатированный буфер строк
Исключение:
ArithmeticException - если округление необходимо с режимом округления, установленным в RoundingMode.UNNECESSARY
См. также:
  • Format.format(java.lang.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 - строка для разбора
parsePosition - объект ParsePosition с информацией об индексе и индексе ошибки, как описано выше.
Возвращает:
Число, разобранное из строки. В случае неудачи возвращает null.
Исключение:
NullPointerException - если source или ParsePosition равно null.
См. также:
  • isStrict()

parse

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

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

Parameters:
source - Строка, подлежащая парсингу с начала.
Returns:
Number, парсированный из строки.
Throws:
ParseException - если парсинг не удался
NullPointerException - если source имеет null формат.
See Also:
  • isStrict()

isParseIntegerOnly

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

setParseIntegerOnly

public void setParseIntegerOnly(boolean value)
Устанавливает, должны ли числа обрабатываться только как целые.
Parameters:
value - true, если числа должны обрабатываться как целые; false в противном случае
See Also:
  • isParseIntegerOnly()

isStrict

public boolean isStrict()
Возвращает true, если этот формат будет парсить числа строго; false в противном случае.
Implementation Requirements:
По умолчанию реализация всегда выбрасывает UnsupportedOperationException. Подклассы должны переопределять этот метод при реализации строгого парсинга.
Returns:
true, если этот формат будет парсить числа строго; false в противном случае
Throws:
UnsupportedOperationException - если реализация этого метода не поддерживает эту операцию
Since:
23
See Also:
  • Раздел толерантности
  • setStrict(boolean)

setStrict

public void setStrict(boolean strict)
Изменяет значение толерантности для парсинга. Парсинг может быть строгим или гибким, по умолчанию он гибкий.
Implementation Requirements:
По умолчанию реализация всегда выбрасывает UnsupportedOperationException. Подклассы должны переопределять этот метод при реализации строгого парсинга.
Parameters:
strict - true, если парсинг должен выполняться строго; false в противном случае
Throws:
UnsupportedOperationException - если реализация этого метода не поддерживает эту операцию
Since:
23
See Also:
  • Раздел толерантности
  • isStrict()

getInstance

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

getInstance

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

getNumberInstance

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

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

Returns:
экземпляр NumberFormat для общего форматирования чисел
See Also:
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getNumberInstance

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

getIntegerInstance

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

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

Returns:
формат чисел для целых значений
Since:
1.4
See Also:
  • getRoundingMode()
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getIntegerInstance

public static NumberFormat getIntegerInstance(Locale inLocale)
Возвращает формат целых чисел для указанной локали. Возвращаемый формат чисел настроен на округление чисел с плавающей точкой до ближайшего целого с округлением до ближайшего целого с использованием округления по методу "половина к чётному" (см. RoundingMode.HALF_EVEN) для форматирования и для парсинга только целой части входной строки (см. isParseIntegerOnly).
Parameters:
inLocale - нужная локаль
Returns:
формат чисел для целых значений
Since:
1.4
See Also:
  • getRoundingMode()

getCurrencyInstance

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

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

Returns:
экземпляр NumberFormat для форматирования валюты
See Also:
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getCurrencyInstance

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

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

Parameters:
inLocale - нужная локаль
Returns:
экземпляр NumberFormat для форматирования валюты
External Specifications
  • Unicode Locale Data Markup Language (LDML)

getPercentInstance

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

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

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

getPercentInstance

public static NumberFormat getPercentInstance(Locale inLocale)
Возвращает формат процентов для указанной локали.
Parameters:
inLocale - нужная локаль
Returns:
экземпляр 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, если в этом формате используется группировка. Например, в английской локали, с включенной группировкой, число 1234567 может быть отформатировано как "1 234 567". Разделитель группировки, а также размер каждой группы зависят от локали и определяются подклассами NumberFormat.
Возвращает:
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 также будет установлено на новое значение.
Параметры:
newValue - максимальное количество целых цифр для отображения; если меньше нуля, то используется ноль. Конкретный подкласс может применить ограничение сверху для этого значения, соответствующее типу числового типа, который форматируется.
См. также:
  • getMaximumIntegerDigits()

getMinimumIntegerDigits

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

setMinimumIntegerDigits

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

getMaximumFractionDigits

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

setMaximumFractionDigits

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

getMinimumFractionDigits

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

setMinimumFractionDigits

public void setMinimumFractionDigits(int newValue)
Устанавливает минимальное количество знаков после запятой в дробной части числа. minimumFractionDigits должно быть ≤ maximumFractionDigits. Если новое значение для minimumFractionDigits превышает текущее значение maximumFractionDigits, то maximumFractionDigits также будет установлено в новое значение
Параметры:
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()

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/text/NumberFormat.html

Spec-Zone.ru

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