Класс DecimalFormat

Все реализованные интерфейсы:
Serializable, Cloneable
public class DecimalFormat
extends NumberFormat

DecimalFormat — это конкретный подкласс NumberFormat, предназначенный для форматирования десятичных чисел. Он обладает различными возможностями, позволяющими парсить и форматировать числа в любом формате, включая поддержку западных, арабских и индийских цифр. Он также поддерживает разные типы чисел, включая целые числа (123), числа с фиксированной точкой (123,4), научную запись (1,23E4), проценты (12%) и денежные суммы ($123). Всё это может быть локализовано.

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

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

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

Шаблоны

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

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

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

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

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

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

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

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

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

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

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

Округление

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

Цифры

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

Особые значения

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

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

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

  • BigDecimal(0) если isParseBigDecimal() имеет значение true,
  • Long(0) если isParseBigDecimal() имеет значение false и isParseIntegerOnly() имеет значение true,
  • Double(-0.0) если оба isParseBigDecimal() и isParseIntegerOnly() имеют значение false.

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

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

Пример

<strong>// Print out a number using the localized number, integer, currency,
// and percent format for each locale</strong>
Locale[] locales = NumberFormat.getAvailableLocales();
double myNumber = -1234.56;
NumberFormat form;
for (int j = 0; j < 4; ++j) {
    System.out.println("FORMAT");
    for (int i = 0; i < locales.length; ++i) {
        if (locales[i].getCountry().length() == 0) {
           continue; // Skip language-only locales
        }
        System.out.print(locales[i].getDisplayName());
        switch (j) {
        case 0:
            form = NumberFormat.getInstance(locales[i]); break;
        case 1:
            form = NumberFormat.getIntegerInstance(locales[i]); break;
        case 2:
            form = NumberFormat.getCurrencyInstance(locales[i]); break;
        default:
            form = NumberFormat.getPercentInstance(locales[i]); break;
        }
        if (form instanceof DecimalFormat) {
            System.out.print(": " + ((DecimalFormat) form).toPattern());
        }
        System.out.print(" -> " + form.format(myNumber));
        try {
            System.out.println(" -> " + form.parse(form.format(myNumber)));
        } catch (ParseException e) {}
    }
}
С:
1.1
См. также:
Учебник Java, NumberFormat, DecimalFormatSymbols, ParsePosition, Сериализованная форма

Вложенные классы

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

NumberFormat.Field

Поля

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

FRACTION_FIELD, INTEGER_FIELD

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

Конструктор Описание
DecimalFormat()

Создаёт DecimalFormat с использованием шаблона по умолчанию и символов для локали по умолчанию FORMAT.

DecimalFormat​(String pattern)

Создаёт DecimalFormat с использованием заданного шаблона и символов для локали по умолчанию FORMAT.

DecimalFormat​(String pattern, DecimalFormatSymbols symbols)

Создаёт DecimalFormat с использованием заданного шаблона и символов.

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

Модификатор и тип Метод Описание
void applyLocalizedPattern​(String pattern)

Применяет заданный шаблон к этому объекту Format.

void applyPattern​(String pattern)

Применяет заданный шаблон к этому объекту Format.

Object clone()

Стандартная перегрузка; без изменений в семантике.

boolean equals​(Object obj)

Переопределяет equals

StringBuffer format​(double number, StringBuffer result, FieldPosition fieldPosition)

Форматирует double и преобразует его в строку.

StringBuffer format​(long number, StringBuffer result, FieldPosition fieldPosition)

Форматирует long и преобразует его в строку.

StringBuffer format​(Object number, StringBuffer toAppendTo, FieldPosition pos)

Форматирует число и добавляет полученный текст в предоставленный буфер строк.

AttributedCharacterIterator formatToCharacterIterator​(Object obj)

Форматирует объект, создавая AttributedCharacterIterator.

Currency getCurrency()

Возвращает валюту, используемую этим форматом десятичных дробей при форматировании значений валюты.

DecimalFormatSymbols getDecimalFormatSymbols()

Возвращает копию символов формата десятичных дробей, которая обычно не изменяется программистом или пользователем.

int getGroupingSize()

Возвращает размер группировки.

int getMaximumFractionDigits()

Возвращает максимальное количество цифр, разрешенных в дробной части числа.

int getMaximumIntegerDigits()

Возвращает максимальное количество цифр, разрешенных в целой части числа.

int getMinimumFractionDigits()

Возвращает минимальное количество цифр, разрешенных в дробной части числа.

int getMinimumIntegerDigits()

Возвращает минимальное количество цифр, разрешенных в целой части числа.

int getMultiplier()

Возвращает множитель для использования в процентах, промилле и аналогичных форматах.

String getNegativePrefix()

Возвращает префикс для отрицательных значений.

String getNegativeSuffix()

Возвращает суффикс для отрицательных значений.

String getPositivePrefix()

Возвращает префикс для положительных значений.

String getPositiveSuffix()

Возвращает суффикс для положительных значений.

RoundingMode getRoundingMode()

Возвращает RoundingMode, используемый в DecimalFormat.

int hashCode()

Переопределяет hashCode

boolean isDecimalSeparatorAlwaysShown()

Позволяет получить поведение разделителя десятичных дробей для целых чисел.

boolean isParseBigDecimal()

Возвращает, возвращает ли метод parse(java.lang.String, java.text.ParsePosition) значение BigDecimal.

Number parse​(String text, ParsePosition pos)

Парсит текст из строки, чтобы получить Number.

void setCurrency​(Currency currency)

Устанавливает валюту, используемую этим форматом чисел при форматировании значений валюты.

void setDecimalFormatSymbols​(DecimalFormatSymbols newSymbols)

Устанавливает символы формата десятичных дробей, которые обычно не изменяются программистом или пользователем.

void setDecimalSeparatorAlwaysShown​(boolean newValue)

Позволяет установить поведение разделителя десятичных дробей для целых чисел.

void setGroupingSize​(int newValue)

Устанавливает размер группировки.

void setMaximumFractionDigits​(int newValue)

Устанавливает максимальное количество цифр, разрешенных в дробной части числа.

void setMaximumIntegerDigits​(int newValue)

Устанавливает максимальное количество цифр, разрешенных в целой части числа.

void setMinimumFractionDigits​(int newValue)

Устанавливает минимальное количество цифр, разрешенных в дробной части числа.

void setMinimumIntegerDigits​(int newValue)

Устанавливает минимальное количество цифр, разрешенных в целой части числа.

void setMultiplier​(int newValue)

Устанавливает множитель для использования в процентах, промилле и аналогичных форматах.

void setNegativePrefix​(String newValue)

Устанавливает префикс для отрицательных значений.

void setNegativeSuffix​(String newValue)

Устанавливает суффикс для отрицательных значений.

void setParseBigDecimal​(boolean newValue)

Устанавливает, возвращает ли метод parse(java.lang.String, java.text.ParsePosition) значение BigDecimal.

void setPositivePrefix​(String newValue)

Устанавливает префикс для положительных значений.

void setPositiveSuffix​(String newValue)

Устанавливает суффикс для положительных значений.

void setRoundingMode​(RoundingMode roundingMode)

Устанавливает RoundingMode, используемый в DecimalFormat.

String toLocalizedPattern()

Генерирует локализованную строку шаблона, представляющую текущее состояние этого объекта Format.

String toPattern()

Генерирует строку шаблона, представляющую текущее состояние этого объекта Format.

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

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

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

format, parseObject

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

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

Конструкторы

DecimalFormat

public DecimalFormat()

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

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

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

DecimalFormat

public DecimalFormat(String pattern)

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

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

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

DecimalFormat

public DecimalFormat(String pattern,
                     DecimalFormatSymbols symbols)

Создаёт DecimalFormat с использованием заданного шаблона и символов. Используйте этот конструктор, когда вам нужно полностью настроить поведение формата.

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

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

Методы

format

public final StringBuffer format(Object number,
                                 StringBuffer toAppendTo,
                                 FieldPosition pos)

Форматирует число и добавляет полученный текст в заданный буфер строк. Число может быть любого подкласса Number.

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

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

format

public StringBuffer format(double number,
                           StringBuffer result,
                           FieldPosition fieldPosition)

Форматирует double для получения строки.

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

format

public StringBuffer format(long number,
                           StringBuffer result,
                           FieldPosition fieldPosition)

Форматирует long для получения строки.

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

formatToCharacterIterator

public AttributedCharacterIterator formatToCharacterIterator(Object obj)

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

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

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

parse

public Number parse(String text,
                    ParsePosition pos)

Парсит текст из строки для получения Number.

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

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

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

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

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

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

Переопределяет:
parse в классе NumberFormat
Параметры:
text - строка для анализа
pos - Объект ParsePosition с индексом и индексом ошибки, как описано выше.
Возвращает:
разложенное значение или null, если анализ не удался
Исключения:
NullPointerException - если text или pos равно null.
См. также:
NumberFormat.isParseIntegerOnly(), Format.parseObject(java.lang.String, java.text.ParsePosition)

getDecimalFormatSymbols

public DecimalFormatSymbols getDecimalFormatSymbols()

Возвращает копию символов формата десятичных знаков, которые обычно не изменяются программистом или пользователем.

Возвращает:
копию необходимых DecimalFormatSymbols
См. также:
DecimalFormatSymbols

setDecimalFormatSymbols

public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)

Устанавливает символы формата десятичных знаков, которые обычно не изменяются программистом или пользователем.

Параметры:
newSymbols - необходимые DecimalFormatSymbols
См. также:
DecimalFormatSymbols

getPositivePrefix

public String getPositivePrefix()

Получить положительный префикс.

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

Возвращает:
положительный префикс

setPositivePrefix

public void setPositivePrefix(String newValue)

Установить положительный префикс.

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

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

getNegativePrefix

public String getNegativePrefix()

Получить отрицательный префикс.

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

Возвращает:
отрицательный префикс

setNegativePrefix

public void setNegativePrefix(String newValue)

Установить отрицательный префикс.

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

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

getPositiveSuffix

public String getPositiveSuffix()

Получить положительный суффикс.

Пример: 123%

Возвращает:
положительный суффикс

setPositiveSuffix

public void setPositiveSuffix(String newValue)

Установить положительный суффикс.

Пример: 123%

Параметры:
newValue - новый положительный суффикс

getNegativeSuffix

public String getNegativeSuffix()

Получить отрицательный суффикс.

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

Возвращает:
отрицательный суффикс

setNegativeSuffix

public void setNegativeSuffix(String newValue)

Установить отрицательный суффикс.

Примеры: 123%

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

getMultiplier

public int getMultiplier()

Получает множитель для использования в процентах, промилле и подобных форматах.

Возвращает:
множитель
См. также:
setMultiplier(int)

setMultiplier

public void setMultiplier(int newValue)

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

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

Параметры:
newValue — новый множитель
См. также:
getMultiplier()

getGroupingSize

public int getGroupingSize()

Возвращает размер группировки. Размер группировки — это количество цифр между разделителями группировки в целой части числа. Например, в числе "123,456.78" размер группировки равен 3.

Возвращает:
размер группировки
См. также:
setGroupingSize(int), NumberFormat.isGroupingUsed(), DecimalFormatSymbols.getGroupingSeparator()

setGroupingSize

public void setGroupingSize(int newValue)

Устанавливает размер группировки. Размер группировки — это количество цифр между разделителями группировки в целой части числа. Например, в числе "123,456.78" размер группировки равен 3.
Передаваемое значение преобразуется в байт, что может привести к потере информации.

Параметры:
newValue — новый размер группировки
См. также:
getGroupingSize(), NumberFormat.setGroupingUsed(boolean), DecimalFormatSymbols.setGroupingSeparator(char)

isDecimalSeparatorAlwaysShown

public boolean isDecimalSeparatorAlwaysShown()

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

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

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

setDecimalSeparatorAlwaysShown

public void setDecimalSeparatorAlwaysShown(boolean newValue)

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

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

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

isParseBigDecimal

public boolean isParseBigDecimal()

Возвращает, возвращает ли метод parse(java.lang.String, java.text.ParsePosition) значение BigDecimal. Значение по умолчанию — false.

Возвращает:
true если метод parse возвращает BigDecimal; false в противном случае
С:
1.5
См. также:
setParseBigDecimal(boolean)

setParseBigDecimal

public void setParseBigDecimal(boolean newValue)

Устанавливает, возвращает ли метод parse(java.lang.String, java.text.ParsePosition) значение BigDecimal.

Параметры:
newValue — true если метод parse возвращает BigDecimal; false в противном случае
С:
1.5
См. также:
isParseBigDecimal()

clone

public Object clone()

Стандартная перегрузка; семантика не изменяется.

Переопределяет:
clone в классе NumberFormat
Возвращает:
клонированный экземпляр.
См. также:
Cloneable

equals

public boolean equals(Object obj)

Переопределяет equals

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

hashCode

public int hashCode()

Переопределяет hashCode

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

toPattern

public String toPattern()

Генерирует строку шаблона, представляющую текущее состояние этого объекта Format.

Возвращает:
строка шаблона
См. также:
applyPattern(java.lang.String)

toLocalizedPattern

public String toLocalizedPattern()

Генерирует локализованную строку шаблона, представляющую текущее состояние этого объекта Format.

Возвращает:
локализованная строка шаблона
См. также:
applyPattern(java.lang.String)

applyPattern

public void applyPattern(String pattern)

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

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

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

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

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

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

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

applyLocalizedPattern

public void applyLocalizedPattern(String pattern)

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

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

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

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

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

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

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

setMaximumIntegerDigits

public void setMaximumIntegerDigits(int newValue)

Устанавливает максимальное количество цифр, разрешенных в целой части числа. Для форматирования чисел, отличных от BigInteger и BigDecimal объектов, используется меньшее из newValue и 309. Отрицательные входные значения заменяются на 0.

Переопределяет:
setMaximumIntegerDigits в классе NumberFormat
Параметры:
newValue — максимальное количество цифр целой части; если меньше нуля, то используется ноль. Конкретный подкласс может обеспечить верхнюю границу для этого значения, соответствующую типу числового значения, которое форматируется.
См. также:
NumberFormat.setMaximumIntegerDigits(int)

setMinimumIntegerDigits

public void setMinimumIntegerDigits(int newValue)

Устанавливает минимальное количество цифр, разрешенных в целой части числа. Для форматирования чисел, отличных от BigInteger и BigDecimal объектов, используется меньшее из newValue и 309. Отрицательные входные значения заменяются на 0.

Переопределяет:
setMinimumIntegerDigits в классе NumberFormat
Параметры:
newValue — минимальное количество цифр целой части; если меньше нуля, то используется ноль. Конкретный подкласс может обеспечить верхнюю границу для этого значения, соответствующую типу числового значения, которое форматируется.
См. также:
NumberFormat.setMinimumIntegerDigits(int)

setMaximumFractionDigits

public void setMaximumFractionDigits(int newValue)

Устанавливает максимальное количество цифр, разрешенных в дробной части числа. Для форматирования чисел, отличных от BigInteger и BigDecimal объектов, используется меньшее из newValue и 340. Отрицательные входные значения заменяются на 0.

Переопределяет:
setMaximumFractionDigits в классе NumberFormat
Параметры:
newValue — максимальное количество цифр дробной части; если меньше нуля, то используется ноль. Конкретный подкласс может обеспечить верхнюю границу для этого значения, соответствующую типу числового значения, которое форматируется.
См. также:
NumberFormat.setMaximumFractionDigits(int)

setMinimumFractionDigits

public void setMinimumFractionDigits(int newValue)

Устанавливает минимальное количество цифр, разрешенных в дробной части числа. Для форматирования чисел, отличных от BigInteger и BigDecimal объектов, используется меньшее из newValue и 340. Отрицательные входные значения заменяются на 0.

Overrides:
setMinimumFractionDigits в классе NumberFormat
Parameters:
newValue - минимальное количество знаков после запятой, которое нужно отобразить; если значение меньше нуля, то используется ноль. Конкретный подкласс может установить верхний предел для этого значения, соответствующий типу форматируемого числа.
See Also:
NumberFormat.setMinimumFractionDigits(int)

getMaximumIntegerDigits

public int getMaximumIntegerDigits()

Возвращает максимальное количество цифр, разрешённых в целой части числа. Для форматирования чисел, отличных от объектов BigInteger и BigDecimal, используется меньшее из возвращаемого значения и 309.

Overrides:
getMaximumIntegerDigits в классе NumberFormat
Returns:
максимальное количество цифр
See Also:
setMaximumIntegerDigits(int)

getMinimumIntegerDigits

public int getMinimumIntegerDigits()

Возвращает минимальное количество цифр, разрешённых в целой части числа. Для форматирования чисел, отличных от объектов BigInteger и BigDecimal, используется меньшее из возвращаемого значения и 309.

Overrides:
getMinimumIntegerDigits в классе NumberFormat
Returns:
минимальное количество цифр
See Also:
setMinimumIntegerDigits(int)

getMaximumFractionDigits

public int getMaximumFractionDigits()

Возвращает максимальное количество цифр, разрешённых в дробной части числа. Для форматирования чисел, отличных от объектов BigInteger и BigDecimal, используется меньшее из возвращаемого значения и 340.

Overrides:
getMaximumFractionDigits в классе NumberFormat
Returns:
максимальное количество цифр.
See Also:
setMaximumFractionDigits(int)

getMinimumFractionDigits

public int getMinimumFractionDigits()

Возвращает минимальное количество цифр, разрешённых в дробной части числа. Для форматирования чисел, отличных от объектов BigInteger и BigDecimal, используется меньшее из возвращаемого значения и 340.

Overrides:
getMinimumFractionDigits в классе NumberFormat
Returns:
минимальное количество цифр
See Also:
setMinimumFractionDigits(int)

getCurrency

public Currency getCurrency()

Возвращает валюту, используемую этим форматом десятичных чисел при форматировании значений валюты. Валюта получается путём вызова DecimalFormatSymbols.getCurrency для символов этого формата чисел.

Overrides:
getCurrency в классе NumberFormat
Returns:
используемую валюту этим форматом десятичных чисел, или null
Since:
1.4

setCurrency

public void setCurrency(Currency currency)

Устанавливает валюту, используемую этим форматом чисел при форматировании значений валюты. Это не обновляет минимальное или максимальное количество знаков после запятой, используемых форматом чисел. Валюта устанавливается путём вызова DecimalFormatSymbols.setCurrency для символов этого формата чисел.

Overrides:
setCurrency в классе NumberFormat
Parameters:
currency - новая валюта, которая будет использоваться этим форматом десятичных чисел
Throws:
NullPointerException - если currency равно null
Since:
1.4

getRoundingMode

public RoundingMode getRoundingMode()

Возвращает RoundingMode, используемый в этом DecimalFormat.

Overrides:
getRoundingMode в классе NumberFormat
Returns:
Используемый в DecimalFormat RoundingMode.
Since:
1.6
See Also:
setRoundingMode(RoundingMode)

setRoundingMode

public void setRoundingMode(RoundingMode roundingMode)

Устанавливает RoundingMode, используемый в этом DecimalFormat.

Overrides:
setRoundingMode в классе NumberFormat
Parameters:
roundingMode - Используемый RoundingMode
Throws:
NullPointerException - если roundingMode равно null.
Since:
1.6
See Also:
getRoundingMode()

© 1993, 2020, 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/11/docs/api/java.base/java/text/DecimalFormat.html

Spec-Zone .ru
спецификации, руководства, описания, API