Класс DecimalFormat
- java.lang.Object
-
- java.text.Format
-
- java.text.NumberFormat
-
- java.text.DecimalFormat
- Все реализованные интерфейсы:
-
Serializable,Cloneable
public class DecimalFormat extends NumberFormat
DecimalFormat — это конкретный подкласс NumberFormat, предназначенный для форматирования десятичных чисел. Он обладает различными возможностями, позволяющими парсить и форматировать числа в любом формате, включая поддержку западных, арабских и индийских цифр. Он также поддерживает разные типы чисел, включая целые числа (123), числа с фиксированной точкой (123,4), научную запись (1,23E4), проценты (12%) и денежные суммы ($123). Всё это может быть локализовано.
Для получения NumberFormat для конкретной локали, включая локаль по умолчанию, вызовите один из методов-фабрик NumberFormat, таких как getInstance(). В общем случае не вызывайте конструкторы DecimalFormat напрямую, так как методы-фабрики NumberFormat могут возвращать подклассы, отличные от DecimalFormat. Если вам нужно настроить объект форматирования, сделайте так:
NumberFormat f = NumberFormat.getInstance(loc);
if (f instanceof DecimalFormat) {
((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
} Формат DecimalFormat состоит из шаблона и набора символов. Шаблон может быть установлен напрямую с помощью applyPattern(), или косвенно с помощью методов API. Символы хранятся в объекте DecimalFormatSymbols. При использовании методов-фабрик NumberFormat шаблон и символы считываются из локализованных ResourceBundle.
Шаблоны
DecimalFormat шаблоны имеют следующий синтаксис: Pattern:
PositivePattern
PositivePattern ; NegativePattern
PositivePattern:
Prefixopt Number Suffixopt
NegativePattern:
Prefixopt Number Suffixopt
Prefix:
any Unicode characters except \uFFFE, \uFFFF, and special characters
Suffix:
any Unicode characters except \uFFFE, \uFFFF, and special characters
Number:
Integer Exponentopt
Integer . Fraction Exponentopt
Integer:
MinimumInteger
#
# Integer
# , Integer
MinimumInteger:
0
0 MinimumInteger
0 , MinimumInteger
Fraction:
MinimumFractionopt OptionalFractionopt
MinimumFraction:
0 MinimumFractionopt
OptionalFraction:
# OptionalFractionopt
Exponent:
E MinimumExponent
MinimumExponent:
0 MinimumExponentopt Шаблон DecimalFormat содержит подшаблон для положительных и отрицательных значений, например, "#,##0.00;(#,##0.00)". Каждый подшаблон имеет префикс, числовую часть и суффикс. Подшаблон для отрицательных значений необязателен; если его нет, то используется подшаблон для положительных значений с префиксом локализованного знака минус ('-' в большинстве локалей). То есть, "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".
- Если максимальное количество целых цифр больше их минимального количества и больше 1, оно заставляет показатель степени быть кратным максимальному количеству целых цифр, а минимальное количество целых цифр интерпретируется как 1. Наиболее распространённое применение — генерация инженерной нотации, в которой показатель степени является кратным трём, например,
- Количество значащих цифр в мантиссе является суммой минимального количества целых цифр и максимального количества дробных цифр и не зависит от максимального количества целых цифр. Например, 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 с использованием шаблона по умолчанию и символов для локали по умолчанию |
DecimalFormat(String pattern) | Создаёт DecimalFormat с использованием заданного шаблона и символов для локали по умолчанию |
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) | Форматирует объект, создавая |
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() | Возвращает |
int | hashCode() | Переопределяет hashCode |
boolean | isDecimalSeparatorAlwaysShown() | Позволяет получить поведение разделителя десятичных дробей для целых чисел. |
boolean | isParseBigDecimal() | Возвращает, возвращает ли метод |
Number | parse(String text,
ParsePosition pos) | Парсит текст из строки, чтобы получить |
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) | Устанавливает, возвращает ли метод |
void | setPositivePrefix(String newValue) | Устанавливает префикс для положительных значений. |
void | setPositiveSuffix(String newValue) | Устанавливает суффикс для положительных значений. |
void | setRoundingMode(RoundingMode roundingMode) | Устанавливает |
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", точно анализироваться.Вызывающие методы могут использовать методы
NumberdoubleValue,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