DecimalFormat Clase

Definición

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

[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
Herencia
Atributos

Comentarios

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales. Tiene una variedad de características diseñadas para que sea posible analizar y dar formato a números en cualquier configuración regional, incluida la compatibilidad con dígitos occidentales, árabes e indices. También admite diferentes tipos de números, incluidos enteros (123), números de punto fijo (123,4), notación científica (1,23E4), porcentajes (12%) y importes de moneda ($123). Todos estos se pueden localizar.

Para obtener un NumberFormat para una configuración regional específica, incluida la configuración regional predeterminada, llame a uno de los métodos de NumberFormatfábrica, como getInstance(). En general, no llame directamente a los DecimalFormat constructores, ya que los NumberFormat métodos de fábrica pueden devolver subclases distintas de DecimalFormat. Si necesita personalizar el objeto de formato, haga algo parecido a esto:

<blockquote>

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

</blockquote>

Un DecimalFormat consta de un <patrón> em</em> y un conjunto de <símbolos> em</em>. El patrón se puede establecer directamente mediante applyPattern(), o indirectamente mediante los métodos de API. Los símbolos se almacenan en un DecimalFormatSymbols objeto . Al usar los NumberFormat métodos de fábrica, el patrón y los símbolos se leen de s localizados ResourceBundle.

<h2>Patterns</h2>

DecimalFormat los patrones tienen la sintaxis siguiente: <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>

Un DecimalFormat patrón contiene un subpatrón positivo y negativo, por ejemplo, "#,##0.00;(#,##0.00)". Cada subpatrón tiene un prefijo, una parte numérica y un sufijo. El subpatrón negativo es opcional; si no está presente, el subpattern positivo prefijo con el signo menos ('-' U+002D HYPHEN-MINUS) se usa como subpatrón negativo. Es decir, "0.00" solo es equivalente a "0.00;-0.00". Si hay un subpatrón negativo explícito, solo sirve para especificar el prefijo negativo y el sufijo; el número de dígitos, dígitos mínimos y otras características son iguales que el patrón positivo. Esto significa que "#,##0.0#;(#)" genera exactamente el mismo comportamiento que "#,##0.0#;(#,##0.0#)".

Los prefijos, los sufijos y varios símbolos usados para infinito, dígitos, separadores de agrupación, separadores decimales, etc. pueden establecerse en valores arbitrarios y aparecerán correctamente durante el formato. Sin embargo, se debe tener cuidado de que los símbolos y las cadenas no entren en conflicto o que el análisis no sea confiable. Por ejemplo, los prefijos positivos y negativos o los sufijos deben ser distintos para DecimalFormat.parse() poder distinguir los valores positivos de los negativos. (Si son idénticos, se DecimalFormat comportará como si no se especificó ningún subpatrón negativo). Otro ejemplo es que el separador decimal y el separador de agrupación deben ser caracteres distintos, o el análisis será imposible.

El separador de agrupación se usa normalmente para miles, pero en algunos países separa diez miles. El tamaño de agrupación es un número constante de dígitos entre los caracteres de agrupación, como 3 para 100 000 000 o 4 para 1000 000 000. Si proporciona un patrón con varios caracteres de agrupación, el intervalo entre el último y el final del entero es el que se usa. Por lo tanto"#,##,###,####" == "######,####" == "##,####,####", .

<h3>"special_pattern_character">Caracteres< de patrón especiales/h3>

Muchos caracteres de un patrón se toman literalmente; coinciden durante el análisis y la salida sin cambios durante el formato. Por otro lado, los caracteres especiales se distinguen por otros caracteres, cadenas o clases de caracteres. Deben estar entrecomillados, a menos que se indique lo contrario, si deben aparecer en el prefijo o sufijo como literales.

Los caracteres enumerados aquí se usan en patrones no localizados. Los patrones localizados usan los caracteres correspondientes tomados del objeto del DecimalFormatSymbols formateador en su lugar, y estos caracteres pierden su estado especial. Dos excepciones son el signo de moneda y la cotización, que no se localizan.

<blockquote><table class="striped"><caption style="display:none">Chart que muestra símbolo, ubicación, localizado y significado.</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<Yes >td<Digit >tr style="vertical-align: top"th scope="row"<><td Number td>#Yes <>td Digit, zero shows as absent <tr style="vertical-align:top"><th scope="row><>"<>td.Number <td><Sí td Separador decimal o separador >decimal monetario tr style="vertical-align: top"<>th scope="row"<><td>Number -td<Yes >td<Minus sign >tr style="vertical-align:top<>"th scope="row"<><td Number >td,<Yes >td Grouping separator <tr style="vertical-align: top"><th scope="row><>"td<>E<>Número <td>Yes <td>Separa mantisa y exponente en notación científica. <em>No es necesario comillas en el prefijo o sufijo.</em><tr style="vertical-align:top"><th scope="row">;<td>Subpattern boundary <td>Yes <td>Separa los subpatrones <positivos y negativos tr style="vertical-align: top"><th scope ="row">%<td>Prefix or suffix <td>Yes <td>Multiply by 100 and show as percentage <tr style="vertical-align:top"><th scope="row">&#92;u2030<td>Prefix or suffix <td td>Sí td<Multiplicar por 1000 y mostrar como por mil valor >tr style="vertical-align: top"<>th scope="row"<> (&#164;) &#92;u00A4td<Prefix or suffix >td<No >td Currency sign, replaced<by currency symbol.> Si se duplica, reemplazado por símbolo de moneda internacional. Si está presente en un patrón, se usan los separadores decimales o de agrupación monetarios en lugar de los separadores decimales o de agrupación. <tr style="vertical-align:top">th scope="row"<>'td<Prefix or suffix >td<No >td<Used to quote special characters in a prefix or suffix, for example, > formats 123 to "'#'#"."#123" Para crear una sola comilla, use dos en una fila: "# o''clock". </tbody></table></blockquote>

<h3>Notación< científica/h3>

Los números en notación científica se expresan como el producto de una mantisa y una potencia de diez, por ejemplo, 1234 se puede expresar como 1,234 x 10^3. La mantisa se encuentra a menudo en el rango 1.0 ≤ x < 10.0, pero no es necesario. DecimalFormat se puede indicar que dé formato y analice la notación <científica solo>a través de un patrón</em>; actualmente no hay ningún método de fábrica que cree un formato de notación científica. En un patrón, el carácter exponente seguido inmediatamente de uno o más caracteres de dígito indica notación científica. Ejemplo: "0.###E0" da formato al número 1234 como "1.234E3".

<ul><li>El número de caracteres de dígitos después del carácter exponente proporciona el número mínimo de dígitos del exponente. No hay ningún máximo. Los exponentes negativos tienen formato mediante el signo menos localizado, <em not>/em<> el prefijo y el sufijo del patrón. Esto permite patrones como "0.###E0 m/s".

<li>El número mínimo y máximo de dígitos enteros se interpretan juntos:

<ul><li>Si el número máximo de dígitos enteros es mayor que su número mínimo y mayor que 1, obliga al exponente a ser un múltiplo del número máximo de dígitos enteros y el número mínimo de dígitos enteros que se interpretarán como 1. El uso más común de esto es generar <notación>< de ingeniería em>, en el que el exponente es un múltiplo de tres, por ejemplo, "##0.#####E0". Con este patrón, el número 12345 da formato a "12.345E3"y 123456 formatos a "123.456E3".

<li>De lo contrario, el número mínimo de dígitos enteros se logra ajustando el exponente. Ejemplo: 0.00123 con formato de "00.###E0" produce "12.3E-4". </ul>

<li>El número de dígitos significativos en la mantisa es la suma de los<> enteros mínimos</em> y <em>máximos fracciones</em>, y no se ve afectado por los dígitos enteros máximos. Por ejemplo, el formato 12345 con "##0.##E0" es "12.3E3". Para mostrar todos los dígitos, establezca el recuento de dígitos significativos en cero. El número de dígitos significativos no afecta al análisis.

<Es posible que los patrones exponenciales li>no contengan separadores de agrupación. </ul>

<h3>Redondeo</h3>

DecimalFormat proporciona modos de redondeo definidos en java.math.RoundingMode para el formato. De forma predeterminada, usa java.math.RoundingMode#HALF_EVEN RoundingMode.HALF_EVEN.

<h3>Digits</h3>

Para el formato, DecimalFormat usa los diez caracteres consecutivos empezando por el dígito cero localizado definido en el DecimalFormatSymbols objeto como dígitos. Para el análisis, se reconocen estos dígitos, así como todos los dígitos decimales Unicode, tal como se define en Character#digit Character.digit.

<h4>Valores< especiales/h4>

NaN tiene el formato de una cadena, que normalmente tiene un solo carácter &#92;uFFFD. Esta cadena viene determinada por el DecimalFormatSymbols objeto . Este es el único valor para el que no se usan los prefijos y sufijos.

Infinity tiene el formato de cadena, que normalmente tiene un solo carácter &#92;u221E, con los prefijos positivos o negativos y los sufijos aplicados. La cadena infinita viene determinada por el DecimalFormatSymbols objeto .

Cero negativo ("-0") analiza a <ul><li>BigDecimal(0) si isParseBigDecimal() es true, <li si > es false y Long(0) es true, isParseBigDecimal()liisParseIntegerOnly()<>Double(-0.0) si ambos isParseBigDecimal() y isParseIntegerOnly() son false. </ul>

<h3>"synchronization">Synchronization</h3>

Por lo general, los formatos decimales no se sincronizan. Se recomienda crear instancias de formato independientes para cada subproceso. Si varios subprocesos acceden a un formato simultáneamente, debe sincronizarse externamente.

<h3>Ejemplo</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>

Agregado en la versión 1.1.

Java documentación para java.text.DecimalFormat.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Constructores

Nombre Description
DecimalFormat()

Crea un decimalFormat con el patrón y los símbolos predeterminados para la configuración regional predeterminada java.util.Locale.Category#FORMAT FORMAT .

DecimalFormat(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

DecimalFormat(String, DecimalFormatSymbols)

Crea un decimalFormat con el patrón y los símbolos especificados.

DecimalFormat(String)

Crea un decimalFormat con el patrón especificado y los símbolos de la configuración regional predeterminada java.util.Locale.Category#FORMAT FORMAT .

Campos

Nombre Description
FractionField

Constante de campo utilizada para construir un objeto FieldPosition.

(Heredado de NumberFormat)
IntegerField

Constante de campo utilizada para construir un objeto FieldPosition.

(Heredado de NumberFormat)

Propiedades

Nombre Description
Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Currency

Obtiene la moneda usada por este formato de número al dar formato a los valores de moneda. -o bien- Establece la moneda utilizada por este formato numérico al dar formato a los valores de moneda.

(Heredado de NumberFormat)
DecimalFormatSymbols

Devuelve una copia de los símbolos de formato decimal, que generalmente no cambia el programador o el usuario. -o bien- Establece los símbolos de formato decimal, que generalmente no cambia el programador o el usuario.

DecimalSeparatorAlwaysShown

Permite obtener el comportamiento del separador decimal con enteros. -o bien- Permite establecer el comportamiento del separador decimal con enteros.

GroupingSize

Devuelve el tamaño de agrupación. -o bien- Establezca el tamaño de agrupación.

GroupingUsed

Devuelve true si la agrupación se usa en este formato. -o bien- Establecer si se usará o no la agrupación en este formato.

(Heredado de NumberFormat)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de JavaObject)
JniPeerMembers

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

MaximumFractionDigits

Devuelve el número máximo de dígitos permitidos en la parte de fracción de un número. -o bien- Establece el número máximo de dígitos permitidos en la parte de fracción de un número.

(Heredado de NumberFormat)
MaximumIntegerDigits

Devuelve el número máximo de dígitos permitidos en la parte entera de un número. -o bien- Establece el número máximo de dígitos permitidos en la parte entera de un número.

(Heredado de NumberFormat)
MinimumFractionDigits

Devuelve el número mínimo de dígitos permitidos en la parte de fracción de un número. -o bien- Establece el número mínimo de dígitos permitidos en la parte de fracción de un número.

(Heredado de NumberFormat)
MinimumIntegerDigits

Devuelve el número mínimo de dígitos permitidos en la parte entera de un número. -o bien- Establece el número mínimo de dígitos permitidos en la parte entera de un número.

(Heredado de NumberFormat)
Multiplier

Obtiene el multiplicador para su uso en porcentaje, por mil y formatos similares. -o bien- Establece el multiplicador para su uso en porcentaje, por mil y formatos similares.

NegativePrefix

Obtiene el prefijo negativo. -o bien- Establezca el prefijo negativo.

NegativeSuffix

Obtiene el sufijo negativo. -o bien- Establezca el sufijo negativo.

ParseBigDecimal

Devuelve si el #parse(java.lang.String, java.text.ParsePosition) método devuelve BigDecimal. -o bien- Establece si el #parse(java.lang.String, java.text.ParsePosition) método devuelve BigDecimal.

ParseIntegerOnly

Devuelve true si este formato analizará los números solo como enteros. -o bien- Establece si los números deben analizarse como enteros únicamente.

(Heredado de NumberFormat)
PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
PositivePrefix

Obtenga el prefijo positivo. -o bien- Establezca el prefijo positivo.

PositiveSuffix

Obtenga el sufijo positivo. -o bien- Establezca el sufijo positivo.

RoundingMode

Obtiene el objeto java.math.RoundingMode utilizado en este numberFormat. -o bien- Establece el java.math.RoundingMode objeto usado en este numberFormat.

(Heredado de NumberFormat)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

Nombre Description
ApplyLocalizedPattern(String)

Aplique el patrón especificado a este objeto Format.

ApplyPattern(String)

Aplique el patrón especificado a este objeto Format.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de _Format)
Construct(JniObjectReference, JniObjectReferenceOptions)

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de JavaObject)
Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de JavaObject)
Equals(Object)

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de JavaObject)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
Format(Double, StringBuffer, FieldPosition)

Da formato a un doble para generar una cadena.

Format(Double)

Especialización del formato.

(Heredado de NumberFormat)
Format(Int64, StringBuffer, FieldPosition)

Dar formato a un long para generar una cadena.

Format(Int64)

Especialización del formato.

(Heredado de NumberFormat)
Format(Object, StringBuffer, FieldPosition)

Da formato a un número y anexa el texto resultante al búfer de cadena especificado.

Format(Object)

Da formato a un objeto para generar una cadena.

(Heredado de _Format)
FormatToCharacterIterator(Object)

Da formato a un objeto que genera un AttributedCharacterIteratorobjeto .

(Heredado de _Format)
GetHashCode()

Devuelve un valor de código hash para el objeto .

(Heredado de Object)
JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
Parse(String, ParsePosition)

Analiza el texto de una cadena para generar un Number.

Parse(String)

Analiza el texto desde el principio de la cadena especificada para generar un número.

(Heredado de NumberFormat)
ParseObject(String, ParsePosition)

Analiza el texto de una cadena para generar un Number.

(Heredado de NumberFormat)
ParseObject(String)

Analiza el texto desde el principio de la cadena especificada para generar un objeto .

(Heredado de _Format)
SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de JavaObject)
ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToLocalizedPattern()

Sintetiza una cadena de patrón localizada que representa el estado actual de este objeto Format.

ToPattern()

Sintetiza una cadena de patrón que representa el estado actual de este objeto Format.

ToString()

Devuelve una representación de cadena del objeto .

(Heredado de Object)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

(Heredado de _Format)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

DecimalFormat es una subclase concreta de NumberFormat que da formato a números decimales.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a