Класс DecimalFormat
- Все реализованные интерфейсы:
-
Serializable,Cloneable
public class DecimalFormat extends NumberFormat
DecimalFormat — это конкретный подкласс NumberFormat, который форматирует десятичные числа. Он обладает различными функциями, предназначенными для возможности парсинга и форматирования чисел в любом регионе, включая поддержку западных, арабских и индийских цифр. Он также поддерживает различные типы чисел, включая целые числа (123), числа с фиксированной точкой (123.4), научную запись (1.23E4), проценты (12%) и денежные суммы ($123). Все это может быть локализовано. Чтобы получить NumberFormat для определённого региона, включая системный регион по умолчанию, вызовите один из методов-фабрик NumberFormat, таких как getInstance(). В общем случае не вызывайте конструкторы DecimalFormat напрямую, так как методы-фабрики NumberFormat могут возвращать подклассы, отличные от DecimalFormat. Если вам необходимо настроить объект форматирования, сделайте это так:
NumberFormat numFormat = NumberFormat.getInstance(loc); if (numFormat instanceof DecimalFormat decFormat) { decFormat.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 U+FFFE, U+FFFF, and special characters
Suffix:
any Unicode characters except U+FFFE, U+FFFF, 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)". Каждый подшаблон имеет префикс, числовую часть и суффикс. Отрицательный подшаблон является необязательным; если он отсутствует, то положительный подшаблон с префиксом минус ('-' U+002D HYPHEN-MINUS) используется в качестве отрицательного подшаблона. То есть, "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 и отобразить в виде процента U+2030Префикс или суффикс Да Умножить на 1000 и отобразить как промилле ¤ ( U+00A4)Префикс или суффикс Нет Знак валюты, заменяется символом валюты. Если удвоен, заменяется международным символом валюты. Если присутствует в шаблоне, денежные десятичные/разделители групп используются вместо десятичных/разделителей групп. 'Префикс или суффикс Нет Используется для заключения в кавычки специальных символов в префиксе или суффиксе, например, "'#'#"форматирует 123 в"#123". Чтобы создать саму одинарную кавычку, используйте две подряд:"# o''clock".
Научная запись
Числа в научной записи выражаются как произведение мантиссы и степени десятки, например, 1234 можно выразить как 1.234 x 10^3. Мантисса часто находится в диапазоне 1.0 ≤ x < 10.0, но это не обязательно. DecimalFormat можно настроить на форматирование и парсинг научной записи только через шаблон; в настоящее время нет метода-фабрики, создающего форматирование научной записи. В шаблоне символ показателя степени, за которым следуют одна или несколько цифр, указывает на научную запись. Пример: "0.###E0" форматирует число 1234 как "1.234E3".
- Количество цифр после символа показателя степени определяет минимальное количество цифр показателя степени. Максимального количества нет. Отрицательные показатели степени форматируются с использованием локализованного знака минус, а не префикса и суффикса из шаблона. Это позволяет использовать шаблоны, такие как
"0.###E0 m/s". - Максимальное число цифр целой части — это сумма '0' и '#' перед точкой. Минимальное число цифр целой части — это сумма '0' перед точкой. Максимальное число и минимальное число цифр дробной части следуют тем же правилам, но применяются к цифрам после точки, но перед показателем степени. Например, следующий шаблон:
"#00.0####E0"будет иметь минимальное число целых цифр = 2 ("00") и максимальное число целых цифр = 3 ("#00"). Он будет иметь минимальное число дробных цифр = 1 ("0") и максимальное число дробных цифр = 5 ("0####"). - Минимальное и максимальное количество целых цифр интерпретируются вместе:
- Если максимальное количество целых цифр больше их минимального числа и больше 1, это заставляет показатель степени быть кратным максимальному числу целых цифр, а минимальное число целых цифр интерпретируется как 1. Наиболее распространённое использование этого — для генерации инженерной записи, в которой показатель степени кратен трём, например,
"##0.#####E0". Используя этот шаблон, число 12345 форматируется как"12.345E3", а 123456 форматируется как"123.456E3". - В противном случае минимальное количество целых цифр достигается путем корректировки показателя степени. Пример: 0.00123, отформатированный с
"00.###E0", даёт"12.3E-4".
- Если максимальное количество целых цифр больше их минимального числа и больше 1, это заставляет показатель степени быть кратным максимальному числу целых цифр, а минимальное число целых цифр интерпретируется как 1. Наиболее распространённое использование этого — для генерации инженерной записи, в которой показатель степени кратен трём, например,
- Для данного числа количество значащих цифр в мантиссе может быть вычислено следующим образом:
Это означает, что в общем случае мантисса будет иметь до максимального количества целых и дробных цифр, если исходное число само по себе имеет достаточно значащих цифр. Однако, если минимальное количество цифр шаблона больше, чем количество значащих цифр в исходном числе, мантисса будет иметь значащие цифры, равные суммарному минимальному числу целых и дробных цифр. Количество значащих цифр не влияет на парсинг.Mantissa Digits: min(max(Minimum Pattern Digits, Original Number Digits), Maximum Pattern Digits) Minimum pattern Digits: Minimum Integer Digits + Minimum Fraction Digits Maximum pattern Digits: Maximum Integer Digits + Maximum Fraction Digits Original Number Digits: The amount of significant digits in the number to be formattedСледует отметить, что целая часть мантиссы передаст любые лишние цифры в дробную часть, будь то для точности или для удовлетворения общего количества минимальных цифр.
Это поведение можно наблюдать в следующем примере:
DecimalFormat df = new DecimalFormat("#000.000##E0"); df.format(12); // returns "12.0000E0" df.format(123456789) // returns "1.23456789E8" - Шаблоны экспоненциальной записи не могут содержать разделители групп.
Округление
DecimalFormat предоставляет режимы округления, определённые в RoundingMode, для форматирования. По умолчанию используется RoundingMode.HALF_EVEN. Цифры
При форматированииDecimalFormat использует десять последовательных символов, начиная с локализованной цифры ноль, определённой в объекте DecimalFormatSymbols как цифры. При парсинге распознаются эти цифры, а также все Unicode-десятичные цифры, как определено в Character.digit. Специальные значения
Не число (NaN) форматируется как строка, которая обычно имеет один символ U+FFFD. Эта строка определяется объектом DecimalFormatSymbols. Это единственное значение, для которого префиксы и суффиксы не используются.
Бесконечность форматируется как строка, которая обычно имеет один символ U+221E, с применением положительных или отрицательных префиксов и суффиксов. Строка бесконечности определяется объектом DecimalFormatSymbols.
Отрицательный ноль ("-0") парсится в
-
BigDecimal(0)еслиisParseBigDecimal()равно true, -
Long(0)еслиisParseBigDecimal()равно false иisParseIntegerOnly()равно true, -
Double(-0.0)если обаisParseBigDecimal()иisParseIntegerOnly()равны false.
Синхронизация
Форматы десятичных чисел обычно не синхронизированы. Рекомендуется создавать отдельные экземпляры форматировщика для каждого потока. Если несколько потоков одновременно обращаются к формату, его необходимо синхронизировать внешним образом.
Пример
// Print out a number using the localized number, integer, currency, // and percent format for each locale Locale[] locales = NumberFormat.getAvailableLocales(); double myNumber = -1234.56; NumberFormat form; for (int j = 0; j < 4; ++j) { System.out.println("FORMAT"); for (Locale locale : locales) { if (locale.getCountry().length() == 0) { continue; // Skip language-only locales } System.out.print(locale.getDisplayName()); form = switch (j) { case 0 -> NumberFormat.getInstance(locale); case 1 -> NumberFormat.getIntegerInstance(locale); case 2 -> NumberFormat.getCurrencyInstance(locale); default -> NumberFormat.getPercentInstance(locale); }; if (form instanceof DecimalFormat decForm) { System.out.print(": " + decForm.toPattern()); } System.out.print(" -> " + form.format(myNumber)); try { System.out.println(" -> " + form.parse(form.format(myNumber))); } catch (ParseException e) {} } }
- Since:
- 1.1
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.text.NumberFormat
NumberFormat.Field, NumberFormat.Style
Краткое описание полей
Поля, объявленные в классе java.text.NumberFormat
FRACTION_FIELD, INTEGER_FIELD
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DecimalFormat() |
Создаёт DecimalFormat с использованием шаблона по умолчанию и символов по умолчанию для локали по умолчанию FORMAT. |
DecimalFormat |
Создаёт DecimalFormat с использованием заданного шаблона и символов для локали по умолчанию FORMAT. |
DecimalFormat |
Создаёт DecimalFormat с использованием заданного шаблона и символов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
applyLocalizedPattern |
Применяет заданный шаблон к этому объекту Format. |
void |
applyPattern |
Применяет заданный шаблон к этому объекту Format. |
Object |
clone() |
Стандартная перегрузка; без изменений в семантике. |
boolean |
equals |
Переопределяет equals |
StringBuffer |
format |
Форматирует double и преобразует его в строку. |
StringBuffer |
format |
Форматирует long и преобразует его в строку. |
final StringBuffer |
format |
Форматирует число и добавляет результат к заданному буферу строк. |
AttributedCharacterIterator |
formatToCharacterIterator |
Форматирует объект, генерируя 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) значение %%%CODE_BLOCK_147%%. |
Number |
parse |
Разбирает текст из строки для получения Number. |
void |
setCurrency |
Устанавливает валюту, используемую этим форматом чисел при форматировании значений валюты. |
void |
setDecimalFormatSymbols |
Устанавливает символы формата десятичных чисел, которые, как правило, не изменяются программистом или пользователем. |
void |
setDecimalSeparatorAlwaysShown |
Позволяет установить поведение разделителя десятичных знаков с целыми числами. |
void |
setGroupingSize |
Установить размер группировки. |
void |
setMaximumFractionDigits |
Устанавливает максимальное количество цифр, разрешенных в дробной части числа. |
void |
setMaximumIntegerDigits |
Устанавливает максимальное количество цифр, разрешенных в целой части числа. |
void |
setMinimumFractionDigits |
Устанавливает минимальное количество цифр, разрешенных в дробной части числа. |
void |
setMinimumIntegerDigits |
Устанавливает минимальное количество цифр, разрешенных в целой части числа. |
void |
setMultiplier |
Устанавливает множитель, используемый в процентах, промилле и подобных форматах. |
void |
setNegativePrefix |
Установить префикс отрицательного числа. |
void |
setNegativeSuffix |
Установить суффикс отрицательного числа. |
void |
setParseBigDecimal |
Устанавливает, возвращает ли метод parse(java.lang.String, java.text.ParsePosition) значение %%%CODE_BLOCK_176%%. |
void |
setPositivePrefix |
Установить префикс положительного числа. |
void |
setPositiveSuffix |
Установить суффикс положительного числа. |
void |
setRoundingMode |
Устанавливает RoundingMode, используемый в этом DecimalFormat. |
String |
toLocalizedPattern() |
Генерирует локализованную строку шаблона, которая представляет текущее состояние этого объекта Format. |
String |
toPattern() |
Генерирует строку шаблона, которая представляет текущее состояние этого объекта Format. |
Методы, объявленные в классе java.text.NumberFormat
format, format, getAvailableLocales, getCompactNumberInstance, getCompactNumberInstance, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, isGroupingUsed, isParseIntegerOnly, parse, parseObject, setGroupingUsed, setParseIntegerOnly
Методы, объявленные в классе java.text.Format
format, parseObject
Подробное описание конструкторов
DecimalFormat
public DecimalFormat()
FORMAT. Это удобный способ получить DecimalFormat, когда локализация не является основной задачей. Для получения стандартных форматов для заданной локали, используйте методы-фабрики в NumberFormat, такие как getNumberInstance. Эти фабрики вернут наиболее подходящий подкласс NumberFormat для данной локали.
- См. также:
DecimalFormat
public DecimalFormat(String pattern)
FORMAT. Это удобный способ получить DecimalFormat, когда локализация не является основной задачей. Для получения стандартных форматов для заданной локали, используйте методы-фабрики в NumberFormat, такие как getNumberInstance. Эти фабрики вернут наиболее подходящий подкласс NumberFormat для данной локали.
- Параметры:
-
pattern- строка шаблона, не локализованная. - Исключения:
-
NullPointerException- еслиpatternравно null -
IllegalArgumentException- если заданный шаблон некорректен. - См. также:
DecimalFormat
public DecimalFormat(String pattern, DecimalFormatSymbols symbols)
Для получения стандартных форматов для заданной локали, используйте методы-фабрики в NumberFormat, такие как getInstance или getCurrencyInstance. Если вам нужны только незначительные корректировки стандартного формата, вы можете изменить формат, возвращаемый методом-фабрикой NumberFormat.
- Параметры:
-
pattern- строка шаблона, не локализованная -
symbols- набор символов для использования - Исключения:
-
NullPointerException- если любой из переданных аргументов равен null -
IllegalArgumentException- если заданный шаблон некорректен - См. также:
Подробное описание методов
format
public final StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
Number. Эта реализация использует максимальную точность.
- Переопределяет:
-
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 - См. также:
format
public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
- Определено в:
-
formatв классеNumberFormat - Параметры:
-
number- double для форматирования -
result- место, куда добавляется текст -
fieldPosition- отслеживает позицию поля в возвращаемой строке. Например, для форматирования числа1234567.89в локалиLocale.US, если заданныйfieldPositionравенNumberFormat.INTEGER_FIELD, начальный и конечный индексыfieldPositionбудут установлены в 0 и 9 соответственно для отформатированной строки1,234,567.89. - Возвращает:
- Отформатированная строка числа
- Исключения:
-
NullPointerException- еслиresultилиfieldPositionnull -
ArithmeticException- если требуется округление с режимом округления RoundingMode.UNNECESSARY - См. также:
format
public StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition)
- Определено в:
-
formatв классеNumberFormat - Параметры:
-
number- long для форматирования -
result- место, куда добавляется текст -
fieldPosition- отслеживает позицию поля в возвращаемой строке. Например, для форматирования числа123456789в локалиLocale.US, если заданныйfieldPositionравенNumberFormat.INTEGER_FIELD, начальный и конечный индексыfieldPositionбудут установлены в 0 и 11 соответственно для отформатированной строки123,456,789. - Возвращает:
- Отформатированная строка числа
- Исключения:
-
NullPointerException- еслиresultилиfieldPositionnull -
ArithmeticException- если требуется округление с режимом округления RoundingMode.UNNECESSARY - См. также:
formatToCharacterIterator
public AttributedCharacterIterator formatToCharacterIterator(Object obj)
AttributedCharacterIterator. Вы можете использовать возвращаемый AttributedCharacterIterator для построения результирующей строки, а также для определения информации о результирующей строке. Каждый ключ атрибута AttributedCharacterIterator будет типа NumberFormat.Field, а значение атрибута будет таким же, как и ключ атрибута.
- Переопределяет:
-
formatToCharacterIteratorв классеFormat - Параметры:
-
obj- объект для форматирования - Возвращает:
- AttributedCharacterIterator, описывающий отформатированное значение.
- Исключения:
-
NullPointerException- если obj равен null. -
IllegalArgumentException- когда формат не может отформатировать данный объект. -
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, возвращаются как объектыDouble. Это включает значения с дробной частью, бесконечные значения,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.
- Specified by:
-
parseв классеNumberFormat - Parameters:
-
text- строка для парсинга -
pos- ОбъектParsePositionс информацией об индексе и индексе ошибки, как описано выше. - Returns:
- распаршенное значение или
nullв случае ошибки парсинга - Throws:
-
NullPointerException- еслиtextилиposравно null. - See Also:
getDecimalFormatSymbols
public DecimalFormatSymbols getDecimalFormatSymbols()
- Returns:
- копия необходимых символов DecimalFormatSymbols
- See Also:
setDecimalFormatSymbols
public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)
- Parameters:
-
newSymbols- необходимые символы DecimalFormatSymbols - See Also:
getPositivePrefix
public String getPositivePrefix()
Примеры: +123, $123, sFr123
- Returns:
- положительный префикс
setPositivePrefix
public void setPositivePrefix(String newValue)
Примеры: +123, $123, sFr123
- Parameters:
-
newValue- новый положительный префикс
getNegativePrefix
public String getNegativePrefix()
Примеры: -123, ($123) (с отрицательным суффиксом), sFr-123
- Returns:
- отрицательный префикс
setNegativePrefix
public void setNegativePrefix(String newValue)
Примеры: -123, ($123) (с отрицательным суффиксом), sFr-123
- Parameters:
-
newValue- новый отрицательный префикс
getPositiveSuffix
public String getPositiveSuffix()
Пример: 123%
- Returns:
- положительный суффикс
setPositiveSuffix
public void setPositiveSuffix(String newValue)
Пример: 123%
- Parameters:
-
newValue- новый положительный суффикс
getNegativeSuffix
public String getNegativeSuffix()
Примеры: -123%, ($123) (с положительными суффиксами)
- Returns:
- отрицательный суффикс
setNegativeSuffix
public void setNegativeSuffix(String newValue)
Примеры: 123%
- Parameters:
-
newValue- новый отрицательный суффикс
getMultiplier
public int getMultiplier()
- Returns:
- множитель
- See Also:
setMultiplier
public void setMultiplier(int newValue)
U+2030'. Пример: с множителем 100, 1.23 форматируется как "123", а "123" распарсивается в 1.23.
- Parameters:
-
newValue- новый множитель - See Also:
getGroupingSize
public int getGroupingSize()
setGroupingUsed(false).- Returns:
- размер группировки
- See Also:
setGroupingSize
public void setGroupingSize(int newValue)
setGroupingUsed(false). Передаваемое значение преобразуется в байт, что может привести к потере информации. Значения, которые являются отрицательными или больше, чем Byte.MAX_VALUE, вызовут исключение IllegalArgumentException.
- Parameters:
-
newValue- новый размер группировки - Throws:
-
IllegalArgumentException- еслиnewValueотрицателен или больше, чемByte.MAX_VALUE - See Also:
isDecimalSeparatorAlwaysShown
public boolean isDecimalSeparatorAlwaysShown()
Пример: Десятичный включён: 12345 → 12345,; Выключен: 12345 → 12345
- Returns:
-
trueесли десятичный разделитель всегда отображается;falseв противном случае
setDecimalSeparatorAlwaysShown
public void setDecimalSeparatorAlwaysShown(boolean newValue)
Пример: Десятичный включён: 12345 → 12345,; Выключен: 12345 → 12345
- Parameters:
-
newValue-trueесли десятичный разделитель всегда отображается;falseв противном случае
isParseBigDecimal
public boolean isParseBigDecimal()
parse(java.lang.String, java.text.ParsePosition) объект BigDecimal. Значение по умолчанию — false.- Returns:
-
trueесли метод parse возвращает BigDecimal;falseв противном случае - Since:
- 1.5
- See Also:
setParseBigDecimal
public void setParseBigDecimal(boolean newValue)
parse(java.lang.String, java.text.ParsePosition) значение типа BigDecimal.- Parameters:
-
newValue-trueесли метод parse возвращает BigDecimal;falseв противном случае - Since:
- 1.5
- See Also:
clone
public Object clone()
- Overrides:
-
cloneв классеNumberFormat - Returns:
- клонированный экземпляр.
- See Also:
equals
public boolean equals(Object obj)
- Overrides:
-
equalsв классеNumberFormat - Parameters:
-
obj- объект-ссылка для сравнения. - Returns:
-
trueесли этот объект такой же, как аргумент obj;falseв противном случае. - See Also:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеNumberFormat - Returns:
- значение хэш-кода для этого объекта.
- See Also:
toPattern
public String toPattern()
- Returns:
- строка шаблона
- See Also:
toLocalizedPattern
public String toLocalizedPattern()
- Returns:
- локализованная строка шаблона
- See Also:
applyPattern
public void applyPattern(String pattern)
Количество целых цифр, установленных этой процедурой, не ограничено, так как это типичное желание конечного пользователя; используйте setMaximumInteger, если хотите установить действительное значение. Для отрицательных чисел используйте второй шаблон, разделенный точкой с запятой
Пример "#,#00.0#" → 1 234,56
Это означает минимум 2 целых цифры, 1 дробную цифру и максимум 2 дробных цифры.
Пример: "#,#00.0#;(#,#00.0#)" для отрицательных значений в скобках.
В шаблонах для отрицательных чисел минимальное и максимальное количество цифр игнорируется; предполагается, что они установлены в шаблоне для положительных чисел.
- Parameters:
-
pattern- новый шаблон - Throws:
-
NullPointerException- еслиpatternравно null -
IllegalArgumentException- если заданный шаблон некорректен.
applyLocalizedPattern
public void applyLocalizedPattern(String pattern)
Количество целых цифр, установленных этой процедурой, не ограничено, так как это типичное желание конечного пользователя; используйте setMaximumInteger, если хотите установить действительное значение. Для отрицательных чисел используйте второй шаблон, разделенный точкой с запятой
Пример "#,#00.0#" → 1 234,56
Это означает минимум 2 целых цифры, 1 дробную цифру и максимум 2 дробных цифры.
Пример: "#,#00.0#;(#,#00.0#)" для отрицательных значений в скобках.
В шаблонах для отрицательных чисел минимальное и максимальное количество цифр игнорируется; предполагается, что они установлены в шаблоне для положительных чисел.
- Parameters:
-
pattern- новый шаблон - Throws:
-
NullPointerException- еслиpatternравно null -
IllegalArgumentException- если заданный шаблон некорректен.
setMaximumIntegerDigits
public void setMaximumIntegerDigits(int newValue)
BigInteger и BigDecimal, используется меньшее из значений newValue и 309. Отрицательные значения входных данных заменяются на 0.- Overrides:
-
setMaximumIntegerDigitsв классеNumberFormat - Parameters:
-
newValue- максимальное количество целых цифр для отображения; если меньше нуля, то используется ноль. Конкретный подкласс может наложить верхний предел на это значение, соответствующий типу числового типа, который форматируется. - See Also:
setMinimumIntegerDigits
public void setMinimumIntegerDigits(int newValue)
BigInteger и BigDecimal, используется меньшее из значений newValue и 309. Отрицательные значения входных данных заменяются на 0.- Overrides:
-
setMinimumIntegerDigitsв классеNumberFormat - Parameters:
-
newValue- минимальное количество целых цифр для отображения; если меньше нуля, то используется ноль. Конкретный подкласс может наложить верхний предел на это значение, соответствующий типу числового типа, который форматируется. - See Also:
setMaximumFractionDigits
public void setMaximumFractionDigits(int newValue)
BigInteger и BigDecimal, используется меньшее из значений newValue и 340. Отрицательные значения входных данных заменяются на 0.- Overrides:
-
setMaximumFractionDigitsв классеNumberFormat - Parameters:
-
newValue- максимальное количество дробных цифр для отображения; если меньше нуля, то используется ноль. Конкретный подкласс может наложить верхний предел на это значение, соответствующий типу числового типа, который форматируется. - See Also:
setMinimumFractionDigits
public void setMinimumFractionDigits(int newValue)
BigInteger и BigDecimal, используется меньшее из значений newValue и 340. Отрицательные значения входных данных заменяются на 0.- Overrides:
-
setMinimumFractionDigitsв классеNumberFormat - Parameters:
-
newValue- минимальное количество дробных цифр для отображения; если меньше нуля, то используется ноль. Конкретный подкласс может наложить верхний предел на это значение, соответствующий типу числового типа, который форматируется. - See Also:
getMaximumIntegerDigits
public int getMaximumIntegerDigits()
BigInteger и BigDecimal, используется меньшее из значений возвращаемого значения и 309.- Overrides:
-
getMaximumIntegerDigitsв классеNumberFormat - Returns:
- максимальное количество цифр
- See Also:
getMinimumIntegerDigits
public int getMinimumIntegerDigits()
BigInteger и BigDecimal, используется меньшее из значений возвращаемого значения и 309.- Overrides:
-
getMinimumIntegerDigitsв классеNumberFormat - Returns:
- минимальное количество цифр
- See Also:
getMaximumFractionDigits
public int getMaximumFractionDigits()
BigInteger и BigDecimal, используется меньшее из значений возвращаемого значения и 340.- Overrides:
-
getMaximumFractionDigitsв классеNumberFormat - Returns:
- максимальное количество цифр.
- See Also:
getMinimumFractionDigits
public int getMinimumFractionDigits()
BigInteger и BigDecimal, используется меньшее из значений возвращаемого значения и 340.- Overrides:
-
getMinimumFractionDigitsв классеNumberFormat - Returns:
- минимальное количество цифр
- See Also:
getCurrency
public Currency getCurrency()
DecimalFormatSymbols.getCurrency в символах этого числового формата.- Overrides:
-
getCurrencyв классеNumberFormat - Возвращает:
- используемую для этого формата десятичных чисел валюту или
null - Since:
- 1.4
setCurrency
public void setCurrency(Currency currency)
DecimalFormatSymbols.setCurrency в символах этого числового формата.- Overrides:
-
setCurrencyв классеNumberFormat - Параметры:
-
currency- новая валюта, которая будет использоваться этим форматом десятичных чисел - Исключения:
-
NullPointerException- еслиcurrencyравно null - Since:
- 1.4
getRoundingMode
public RoundingMode getRoundingMode()
RoundingMode, используемый в этом DecimalFormat.- Overrides:
-
getRoundingModeв классеNumberFormat - Возвращает:
- Используемый для DecimalFormat
RoundingMode. - Since:
- 1.6
- См. также:
setRoundingMode
public void setRoundingMode(RoundingMode roundingMode)
RoundingMode, используемый в этом DecimalFormat.- Overrides:
-
setRoundingModeв классеNumberFormat - Параметры:
-
roundingMode- ИспользуемыйRoundingMode - Исключения:
-
NullPointerException- еслиroundingModeравно null. - Since:
- 1.6
- См. также:
© 1993, 2023, 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/21/docs/api/java.base/java/text/DecimalFormat.html