Язык

DecimalFormat Класс

Определение

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

[Android.Runtime.Register("java/text/DecimalFormat", DoNotGenerateAcw=true)]
public class DecimalFormat : Java.Text.NumberFormat
[<Android.Runtime.Register("java/text/DecimalFormat", DoNotGenerateAcw=true)>]
type DecimalFormat = class
    inherit NumberFormat
Наследование
Атрибуты

Комментарии

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

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

<blockquote>

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

</blockquote>

A DecimalFormat состоит из<> шаблона< em/em> и набора <>символов< em/em>. Шаблон можно задать напрямую с помощью applyPattern()методов API или косвенно. Символы хранятся в объекте DecimalFormatSymbols . При использовании NumberFormat методов фабрики шаблон и символы считываются из локализованных ResourceBundles.

<h2>Patterns</h2>

DecimalFormat Шаблоны имеют следующий синтаксис: <blockquote>

<i>Pattern:</i>
<i>PositivePattern</i>
<i>PositivePattern</i> ; <i>NegativePattern</i>
<i>PositivePattern:</i>
<i>Prefix<sub>opt</sub></i> <i>Number</i> <i>Suffix<sub>opt</sub></i>
<i>NegativePattern:</i>
<i>Prefix<sub>opt</sub></i> <i>Number</i> <i>Suffix<sub>opt</sub></i>
<i>Prefix:</i>
                    any Unicode characters except &#92;uFFFE, &#92;uFFFF, and special characters
<i>Suffix:</i>
                    any Unicode characters except &#92;uFFFE, &#92;uFFFF, and special characters
<i>Number:</i>
<i>Integer</i> <i>Exponent<sub>opt</sub></i>
<i>Integer</i> . <i>Fraction</i> <i>Exponent<sub>opt</sub></i>
<i>Integer:</i>
<i>MinimumInteger</i>
                    #
                    # <i>Integer</i>
                    # , <i>Integer</i>
<i>MinimumInteger:</i>
                    0
                    0 <i>MinimumInteger</i>
                    0 , <i>MinimumInteger</i>
<i>Fraction:</i>
<i>MinimumFraction<sub>opt</sub></i> <i>OptionalFraction<sub>opt</sub></i>
<i>MinimumFraction:</i>
                    0 <i>MinimumFraction<sub>opt</sub></i>
<i>OptionalFraction:</i>
                    # <i>OptionalFraction<sub>opt</sub></i>
<i>Exponent:</i>
                    E <i>MinimumExponent</i>
<i>MinimumExponent:</i>
                    0 <i>MinimumExponent<sub>opt</sub></i>

</blockquote>

Шаблон 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 для 1000 0000. Если вы предоставляете шаблон с несколькими символами группировки, интервал между последним и концом целого числа является используемым. Итак"#,##,###,####" == "######,####" == "##,####,####".

<h3>"special_pattern_character">Специальные символы< шаблона/h3>

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

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

<blockquote><table class="striped"caption style="display:none"><>Диаграмма с символом, расположением, локализованным и значением.</caption><thead><tr><th scope="col" style="text-align:left">Symbol <th scope="col" style="text-align:left">Location <th scope="col" style="text-align:left">Localized? <th scope="col" style="text-align:left">Meaning /thead<>tbody<>tr style="vertical-align:"top"<>th scope="row"<>0td<Number >td<Да >td<Digit >tr style="vertical-align: top<>"th scope="row"<>#td<Number td><> Digit, zero отображается как отсутствующий <tr style="vertical-align:><top"th scope=><>"row"td.Number <>td Number td <>Да <td>Десятичный разделитель или денежный разделитель десятичного разделителя <tr style="вертикальный выравнивание: top"><th scope="row">-<td>Number td<>< Number >td td Minus sign <tr style="vertical-align:top"><th scope="row"td Number >,<td>Grouping separator <or monetarying grouping style="vertical-align: top"><th scope="row><><">E<td>Число <td Да >td<>отделяет мантиссу и экспонент в научной нотации. <Em>Не требуется кавычек в префиксе или суффиксе.</em>tr style="vertical-align:top"<>th scope="row"<>;td Subpattern boundary <td><Yes >td<Separates positive and negative subpatterns >tr style="vertical-align: top"<>th scope="th scope=" row"<>%td<Prefix или суффикс >td Да <td><Умножение на 100 и отображается как процентный >стиль tr="вертикальный выравнивание:top"th scope="row"<><>&#92;u2030td<Префикс или суффикс >td<>Да <td Умножьте на 1000 и отображается в соответствии со значением >tr в милле="вертикальный выравнивание: top"<>th scope="row"<> (&#164;) &#92;u00A4td<>Префикс или суффикс <td Nod><> Currency Sign, замененный символом валюты. При двойном значении заменяется международным символом валюты. Если используется шаблон, то вместо разделителей десятичного и группирования используются разделители десятичного и группирования. <tr style="vertical-align:top"><th scope="row">'<td Prefix или suffix td>No td Td<>< Used to quote special символы в префиксе или суффиксе>, например форматы "'#'#" 123 to"#123". Чтобы создать одну кавычку, используйте две строки: "# o''clock" </tbody></table></blockquote>

<h3>Научное нотация</h3>

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

<ul><li>Число символов цифр после экспонентного символа дает минимальное число цифр экспонента. Максимальное значение не существует. Отрицательные экспоненты форматируются с помощью локализованного знака минуса, <em not>/em<> префикс и суффикс из шаблона. Это позволяет использовать такие шаблоны, как "0.###E0 m/s".

<li>Минимальное и максимальное число целых цифр интерпретируются вместе:

<ul><li>, если максимальное число целых чисел больше минимального числа и больше 1, то экспонент должен быть кратным из максимального числа целых чисел, а минимальное число целых чисел интерпретируется как 1. Наиболее распространенное использование этого заключается в создании <>нотации или em<, в которой экспонент> является кратным из трех, например"##0.#####E0". Используя этот шаблон, число 12345 форматов "12.345E3"и 123456 форматов "123.456E3"в .

<li>В противном случае минимальное число целых цифр достигается путем настройки экспонента. Пример: 0.00123, отформатированный с "00.###E0" доходностью "12.3E-4". </ul>

<li>Число значимых цифр в мантиссе — это сумма <>минимального целого числа</em> и <>em максимальной дроби</em> цифр и не влияет на максимальное целочисленное число. Например, формат 12345 имеет "##0.##E0" значение "12.3E3". Чтобы отобразить все цифры, задайте для значения значительная цифра нулю. Количество значимых цифр не влияет на синтаксический анализ.

<Ли>Экспоненциальные шаблоны могут не содержать разделители группирования. </ul>

<h3 Округление>/h3<>

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

<h3>Digits</h3>

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

<h4>Special Values</h4>

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

Бесконечность форматируется как строка, которая обычно имеет один символ &#92;u221E, с положительными или отрицательными префиксами и суффиксами, примененными. Строка бесконечности определяется DecimalFormatSymbols объектом.

Отрицательный нуль ("-0") анализирует <значение ul><li>BigDecimal(0), если isParseBigDecimal() имеет значение true, <li>Long(0) if isParseBigDecimal() is false и isParseIntegerOnly() имеет значение true, ли<>, Double(-0.0)если isParseBigDecimal() оба и isParseIntegerOnly() являются ложными. </ul>

<h3>"синхронизация">Синхронизация</h3>

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

<h3 Example>/h3<>

<blockquote>

<strong>{@code
            // Print out a number using the localized number, integer, currency,
            // and percent format for each locale}</strong>{@code
            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) {}
                }
            }
            }

</blockquote>

Добавлено в версии 1.1.

Документация по Java для java.text.DecimalFormat.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

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

Имя. Описание
DecimalFormat()

Создает Десятичный формат с помощью шаблона и символов по умолчанию для языкового стандарта по умолчанию java.util.Locale.Category#FORMAT FORMAT .

DecimalFormat(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

DecimalFormat(String, DecimalFormatSymbols)

Создает Десятичную форму с помощью заданного шаблона и символов.

DecimalFormat(String)

Создает Десятичный формат с помощью заданного шаблона и символов языкового стандарта по умолчанию java.util.Locale.Category#FORMAT FORMAT .

Поля

Имя. Описание
FractionField

Константы полей, используемые для создания объекта FieldPosition.

(Унаследовано от NumberFormat)
IntegerField

Константы полей, используемые для создания объекта FieldPosition.

(Унаследовано от NumberFormat)

Свойства

Имя. Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Currency

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

(Унаследовано от NumberFormat)
DecimalFormatSymbols

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

DecimalSeparatorAlwaysShown

Позволяет получить поведение десятичного разделителя целыми числами. -или- Позволяет задать поведение десятичного разделителя целыми числами.

GroupingSize

Возвращает размер группировки. -или- Задайте размер группировки.

GroupingUsed

Возвращает значение true, если группирование используется в этом формате. -или- Задайте, будет ли группирование использоваться в этом формате.

(Унаследовано от NumberFormat)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от JavaObject)
JniPeerMembers

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

MaximumFractionDigits

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

(Унаследовано от NumberFormat)
MaximumIntegerDigits

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

(Унаследовано от NumberFormat)
MinimumFractionDigits

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

(Унаследовано от NumberFormat)
MinimumIntegerDigits

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

(Унаследовано от NumberFormat)
Multiplier

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

NegativePrefix

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

NegativeSuffix

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

ParseBigDecimal

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

ParseIntegerOnly

Возвращает значение true, если этот формат анализирует числа только в виде целых чисел. -или- Задает, следует ли анализировать числа только в виде целых чисел.

(Унаследовано от NumberFormat)
PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
PositivePrefix

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

PositiveSuffix

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

RoundingMode

Возвращает используемый java.math.RoundingMode в этом numberFormat. -или- Задает используемый java.math.RoundingMode в этом номереFormat.

(Унаследовано от NumberFormat)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Имя. Описание
ApplyLocalizedPattern(String)

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

ApplyPattern(String)

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

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от _Format)
Construct(JniObjectReference, JniObjectReferenceOptions)

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от JavaObject)
Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от JavaObject)
Equals(Object)

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
Format(Double, StringBuffer, FieldPosition)

Форматирует двойник для создания строки.

Format(Double)

Специализация формата.

(Унаследовано от NumberFormat)
Format(Int64, StringBuffer, FieldPosition)

Отформатируйте длину для создания строки.

Format(Int64)

Специализация формата.

(Унаследовано от NumberFormat)
Format(Object, StringBuffer, FieldPosition)

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

Format(Object)

Форматирует объект для создания строки.

(Унаследовано от _Format)
FormatToCharacterIterator(Object)

Форматирует объект, создающий AttributedCharacterIteratorобъект.

(Унаследовано от _Format)
GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
JavaFinalize()
Устаревшие.

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

(Унаследовано от Object)
Notify()

Пробуждение одного потока, ожидающего монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
Parse(String, ParsePosition)

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

Parse(String)

Анализирует текст с начала заданной строки, чтобы создать число.

(Унаследовано от NumberFormat)
ParseObject(String, ParsePosition)

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

(Унаследовано от NumberFormat)
ParseObject(String)

Анализирует текст с начала заданной строки для создания объекта.

(Унаследовано от _Format)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от JavaObject)
ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToLocalizedPattern()

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

ToPattern()

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

ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>.

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя. Описание
IJavaPeerable.Disposed()

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от JavaObject)
IJavaPeerable.UnregisterFromRuntime()

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

(Унаследовано от _Format)

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

DecimalFormat — это конкретный подкласс NumberFormat этого формата десятичных чисел.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к