DecimalFormat Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 \uFFFE, \uFFFF, and special characters
<i>Suffix:</i>
any Unicode characters except \uFFFE, \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">\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"<> (¤) \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 \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 \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 |
| 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 |
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 |
| 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 |
|
| JniPeerMembers |
|
| 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 |
| 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 |
| 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) |
|
| 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() |
|
| Equals(Object) |
|
| 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 |
| 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 |
| 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 |
| 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) |
|
| 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() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |