Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las cadenas de formato numérico estándar se utilizan para dar formato a tipos numéricos comunes. La forma de una cadena de formato numérico estándar es [format specifier][precision specifier]
, donde:
El especificador de formato es un carácter alfabético único que especifica el tipo de formato numérico, como, por ejemplo, moneda o porcentaje. Cualquier cadena de formato numérico que contenga más de un carácter alfabético, incluido el espacio en blanco, se interpreta como una cadena de formato numérico personalizado. Para obtener más información, vaya a Cadenas de formato numérico personalizado.
El especificador de precisión es un entero opcional que afecta al número de dígitos de la cadena resultante. El especificador de precisión controla el número de dígitos en la representación de cadena de un número.
Cuando el especificador de precisión controla el número de dígitos fraccionarios en la cadena de resultado, la cadena de resultado refleja un número redondeado a un resultado representable más cercano al resultado infinitomente preciso.
Nota:
El especificador de precisión determina el número de dígitos de la cadena de resultado. Para rellenar una cadena de resultado con espacios iniciales o finales u otros caracteres (como 0), use las funciones Text.PadStart y Text.PadEnd y use la longitud general
count
en estas funciones para rellenar la cadena de resultado.
Las cadenas de formato numérico estándar son compatibles con la función Number.ToText.
Especificadores de formato estándar
En la tabla siguiente se describen los especificadores de formato numérico estándar y se muestran los resultados de ejemplo generados por cada especificador de formato. Vaya a la sección Notas para obtener información adicional sobre el uso de cadenas de formato numérico estándar y la sección Ejemplo de código para obtener una ilustración completa de su uso.
Nota:
El resultado de una cadena con formato para una referencia cultural específica puede diferir de los ejemplos siguientes. La configuración del sistema operativo, la configuración del usuario, las variables de entorno y otras configuraciones del sistema que usa pueden afectar al formato.
Especificador de formato | NOMBRE | Descripción | Ejemplos |
---|---|---|---|
"C" o "c" | Moneda | Resultado: un valor de divisa. Compatible con: todos los tipos numéricos. Especificador de precisión: número de dígitos decimales. Especificador de precisión predeterminado: definido por la referencia cultural. Más información: Especificador de formato de divisa ("C"). |
123.456 ("C", en-US) -> 123,46 USD 123,456 ("C", fr-FR) -> 123,46 € 123.456 ("C", ja-JP) -> •123 -123.456 ("C3", en-US) -> (123.456 $) -123.456 ("C3", fr-FR) -> -123,456 € -123.456 ("C3", ja-JP) -> -**123.456 |
"D" o "d" | Decimal | Resultado: dígitos enteros con signo negativo opcional. Compatible con: solo tipos enteros. Especificador de precisión: número mínimo de dígitos. Especificador de precisión predeterminado: número mínimo de dígitos necesario. Más información: Especificador de formato decimal ("D"). |
1234 ("D") -> 1234 -1234 ("D6") -> -001234 |
"E" o "e" | Exponencial (científico) | Resultado: notación exponencial. Compatible con: todos los tipos numéricos. Especificador de precisión: número de dígitos decimales. Especificador de precisión predeterminado: 6. Más información: Especificador de formato exponencial ("E"). |
1052.0329112756 ("E", en-US) -> 1.052033E+003 1052.0329112756 ("e", fr-FR) -> 1052033e+003 -1052.0329112756 ("e2", en-US) -> -1.05e+003 -1052.0329112756 ("E2", fr-FR) -> -105E+003 |
"F" o "f" | Punto fijo | Resultado: dígitos integrales y decimales con signo negativo opcional. Compatible con: todos los tipos numéricos. Especificador de precisión: número de dígitos decimales. Especificador de precisión predeterminado: definido por la referencia cultural. Más información: Especificador de formato de punto fijo ("F"). |
1234,567 ("F", en-US) -> 1234.57 1234,567 ("F", de-DE) -> 1234,57 1234 ("F1", en-US) -> 1234.0 1234 ("F1", de-DE) -> 1234,0 -1234.56 ("F4", en-US) -> -1234.5600 -1234.56 ("F4", de-DE) -> -1234,5600 |
"G" o "g" | General | Resultado: notación de punto fijo o científica, la que sea más compacta. Compatible con: todos los tipos numéricos. Especificador de precisión: número de dígitos significativos. Especificador de precisión predeterminado: depende del tipo numérico. Más información: Especificador de formato general ("G"). |
-123.456 ("G", en-US) -> -123.456 -123.456 ("G", sv-SE) -> -123,456 123.4546 ("G4", en-US) -> 123.5 123.4546 ("G4", sv-SE) -> 123,5 -1.234567890e-25 ("G", en-US) -> -1.23456789E-25 -1.234567890e-25 ("G", sv-SE) -> -1,23456789E-25 |
"N" o "n" | número | Resultado: dígitos integrales y decimales, separadores de grupos y un separador decimal con signo negativo opcional. Compatible con: todos los tipos numéricos. Especificador de precisión: número deseado de decimales. Especificador de precisión predeterminado: definido por la referencia cultural. Más información: Especificador de formato numérico ("N"). |
1.234,567 ("N", en-US) -> 1.234.57 1.234,567 ("N", ru-RU) -> 1 234,57 1234 ("N1", en-US) -> 1.234.0 1234 ("N1", ru-RU) -> 1 234,0 -1234.56 ("N3", en-US) -> -1,234,560 -1234.56 ("N3", ru-RU) -> -1 234 560 |
"P" o "p" | Porcentaje | Resultado: número multiplicado por 100 y mostrado con un símbolo de porcentaje. Compatible con: todos los tipos numéricos. Especificador de precisión: número deseado de decimales. Especificador de precisión predeterminado: definido por la referencia cultural. Más información: Especificador de formato de porcentaje ("P"). |
1 ("P", en-US) -> 100,00 % 1 ("P", fr-FR) -> 100 00 % -0.39678 ("P1", en-US) -> -39,7 % -0.39678 ("P1", fr-FR) -> -39,7 % |
"X" o "x" | Hexadecimal | Resultado: cadena hexadecimal. Compatible con: solo tipos enteros. Especificador de precisión: número de dígitos en la cadena de resultado. Más información: Especificador de formato hexadecimal (X). |
255 ("X") -> FF -1 ("x") -> ff 255 ("x4") -> 00ff -1 ("X4") -> 00FF |
Cualquier otro carácter único | Especificador desconocido | Resultado: produce un error de expresión en tiempo de ejecución. |
Uso de Cadenas con formato numérico estándar
Se puede usar una cadena de formato numérico estándar para definir el formato de un valor numérico. Se puede pasar al parámetro Number.ToTextformat
. En el ejemplo siguiente se da formato a un valor numérico como una cadena de divisa en la referencia cultural actual (en este caso, en-US).
Number.ToText(123.456, "C2")
// Displays $123.46
Opcionalmente, puede proporcionar un argumento count
en las funciones Text.PadStart y Text.PadEnd para especificar el ancho del campo numérico y si su valor está alineado a la derecha o a la izquierda. Por ejemplo, el ejemplo siguiente alinea un valor de moneda en un campo de 28 caracteres y alinea a la derecha un valor de moneda en un campo de 14 caracteres (cuando se usa una fuente monoespacial).
let
amounts = {16305.32, 18794.16},
result = Text.Format(" Beginning Balance Ending Balance#(cr,lf) #{0}#{1}",
{
Text.PadEnd(Number.ToText(amounts{0}, "C2"), 28),
Text.PadStart(Number.ToText(amounts{1}, "C2"), 14)
})
in
result
// Displays:
// Beginning Balance Ending Balance
// $16,305.32 $18,794.16
En las secciones siguientes se proporciona información detallada sobre cada una de las cadenas de formato numérico estándar.
Especificador de formato de moneda (C)
El especificador de formato "C" (divisa) convierte un número en una cadena que representa una cantidad de divisa. El especificador de precisión indica el número deseado de posiciones decimales en la cadena de resultado. Si se omite el especificador de precisión, el número predeterminado de posiciones decimales que se van a usar en los valores de moneda es 2.
Si el valor al que se va a dar formato tiene más posiciones decimales que el número especificado o predeterminado, el valor fraccionario se redondea en la cadena de resultado. Si el valor situado a la derecha del número de posiciones decimales especificadas es 5 o superior, el último dígito de la cadena de resultado se redondea desde cero.
La cadena de resultado se ve afectada por la información de formato de la referencia cultural actual.
En el ejemplo siguiente se da formato a un valor con el especificador de formato de divisa:
let
Source =
{
Number.ToText(12345.6789, "C"),
Number.ToText(12345.6789, "C3"),
Number.ToText(12345.6789, "C3", "da-DK")
}
in
Source
// The example displays the following list on a system whose
// current culture is English (United States):
// $12,345.68
// $12,345.679
// 12.345,679 kr.
Especificador de formato decimal (D)
El especificador de formato "D" (o decimal) convierte un número en una cadena de dígitos decimales (0-9), precedida por un signo menos si el número es negativo. Este formato sólo es compatible con los tipos enteros.
El especificador de precisión indica el número mínimo de dígitos deseado en la cadena resultante. Si es preciso, el número se rellena con ceros a la izquierda para generar el número de dígitos que aporta el especificador de precisión. Si no se indica ningún especificador de precisión, el valor predeterminado es el valor mínimo necesario para representar el entero sin ceros iniciales.
La cadena de resultado se ve afectada por la información de formato de la referencia cultural actual.
En el ejemplo siguiente se da formato a un valor con el especificador de formato decimal.
let
Source =
{
Number.ToText(12345, "D"),
// Displays 12345
Number.ToText(12345, "D8"),
// Displays 00012345
Number.ToText(-12345, "D"),
// Displays -12345
Number.ToText(-12345, "D8")
// Displays -00012345
}
in
Source
Especificador de formato exponencial (E)
El especificador de formato exponencial ("E") convierte un número en una cadena con el formato "-d.ddd…E+ddd" o "-d.ddd…e+ddd", donde cada "d" indica un dígito (0-9). La cadena comienza con un signo menos si el número es negativo. El separador decimal siempre va precedido por exactamente un dígito.
El especificador de precisión indica el número deseado de dígitos después del separador decimal. Si se omite el especificador de precisión, se emplea uno predeterminado que tiene seis dígitos después del separador decimal.
El modelo de mayúsculas o minúsculas del especificador de formato indica si se debe prefijar el exponente con una "E" o con una "e". El exponente siempre consta de un signo más o menos y de un mínimo de tres dígitos. El exponente se rellena con ceros para adaptarlo a este mínimo, si es necesario.
La cadena de resultado se ve afectada por la información de formato de la referencia cultural actual.
En el ejemplo siguiente se da formato a un valor con el especificador de formato exponencial:
let
Source =
{
Number.ToText(12345.6789, "E", ""),
// Displays 1.234568E+004
Number.ToText(12345.6789, "E10", ""),
// Displays 1.2345678900E+004
Number.ToText(12345.6789, "e4", ""),
// 1.2346e+004
Number.ToText(12345.6789, "E", "fr-FR")
// Displays 1,234568E+004
}
in
Source
Nota:
El valor de texto en blanco ("") del último parámetro de Number.ToText del ejemplo anterior hace referencia a la referencia cultural invariable.
Especificador de formato de punto fijo (F)
El especificador de formato de punto fijo ("F") convierte un número en una cadena con el formato "-ddd.ddd…", donde cada "d" indica un dígito (0-9). La cadena comienza con un signo menos si el número es negativo.
El especificador de precisión indica el número deseado de cifras decimales. Si se omite el especificador de precisión, el número predeterminado de posiciones decimales que se van a usar en valores numéricos es 2.
La cadena de resultado se ve afectada por la información de formato de la referencia cultural actual.
En el ejemplo siguiente se da formato a un valor double y un entero con el especificador de formato de punto fijo:
let
Source =
{
Number.ToText(17843, "F", ""),
// Displays 17843.00
Number.ToText(-29541, "F3", ""),
// Displays -29541.000
Number.ToText(18934.1879, "F", ""),
// Displays 18934.19
Number.ToText(18934.1879, "F0", ""),
// Displays 18934
Number.ToText(-1898300.1987, "F1", ""),
// Displays -1898300.2
Number.ToText(-1898300.1987, "F3", "es-ES")
// Displays -1898300,199
}
in
Source
Especificador de formato general (G)
El especificador de formato general ("G") convierte un número a la notación de punto fijo o científica más compacta, dependiendo del tipo del número y de si hay un especificador de precisión o no. El especificador de precisión define el número máximo de dígitos significativos que pueden aparecer en la cadena de resultado. Si el especificador de precisión se omite o es cero, el tipo del número determina la precisión predeterminada, como se indica en la tabla siguiente.
Tipo numérico | Precisión predeterminada |
---|---|
Byte.Type o Int8.Type |
3 dígitos |
Int16.Type |
5 dígitos |
Int32.Type |
10 dígitos |
Int64.Type |
19 dígitos |
Single.Type |
9 dígitos |
Double.Type |
17 dígitos |
Decimal.Type |
15 dígitos |
La notación de punto fijo se utiliza si el exponente que resultaría de la expresión del número en notación científica es mayor que -5 y menor que el especificador de precisión, de lo contrario se utiliza la notación científica. El resultado contiene un separador decimal si es necesario y se omiten los ceros finales después de ese separador. Si el especificador de precisión está presente y el número de dígitos significativos del resultado supera la precisión especificada, los dígitos finales sobrantes se quitan mediante redondeo.
Sin embargo, si el número es Decimal.Type
y se omite el especificador de precisión, siempre se usa la notación de punto fijo y se conservan los ceros finales.
Si se usa la notación científica, el exponente del resultado lleva el prefijo "E" si el especificador de formato es "G", o "e" si el especificador de formato es "g". El exponente contiene un mínimo de dos dígitos. Esto difiere del formato para la notación científica que genera el especificador de formato exponencial, que incluye un mínimo de tres dígitos en el exponente.
La cadena de resultado se ve afectada por la información de formato de la referencia cultural actual.
En el ejemplo siguiente se da formato a valores de punto flotante ordenados con el especificador de formato general:
let
Source =
{
Number.ToText(12345.6789, "G", ""),
// Displays 12345.6789
Number.ToText(12345.6789, "G", "fr-FR"),
// Displays 12345,6789
Number.ToText(12345.6789, "G7", ""),
// Displays 12345.68
Number.ToText(.0000023, "G", ""),
// Displays 2.3E-06
Number.ToText(.0000023, "G", "fr-FR"),
// Displays 2,3E-06
Number.ToText(.0023, "G", ""),
// Displays 0.0023
Number.ToText(1234, "G2", ""),
// Displays 1.2E+03
Number.ToText(Number.PI, "G5", "")
// Displays 3.1416
}
in
Source
Especificador de formato numérico (N)
El especificador de formato numérico ("N") convierte un número en una cadena con el formato "-d,ddd,ddd.ddd…", donde "-" indica el símbolo de número negativo, si es necesario; "d", representa cada dígito (0-9); "," es el separador de grupo; y "." es el símbolo de punto decimal. El especificador de precisión indica el número deseado de dígitos después del separador decimal. Si se omite el especificador de precisión, la referencia cultural actual define el número de posiciones decimales.
La cadena de resultado se ve afectada por la información de formato de la referencia cultural actual.
En el ejemplo siguiente se da formato a valores de punto flotante ordenados con el especificador de formato numérico:
let
Source =
{
Number.ToText(-12445.6789, "N", ""),
// Displays -12,445.68
Number.ToText(-12445.6789, "N1", "sv-SE"),
// Displays -12 445,7
Number.ToText(123456789, "N1", "")
// Displays 123,456,789.0
}
in
Source
Especificador de formato de porcentaje (P)
El especificador de formato de porcentaje ("P") multiplica un número por 100 y lo convierte en una cadena que representa un porcentaje. El especificador de precisión indica el número deseado de cifras decimales. Si se omite el especificador de precisión, se usa la precisión numérica predeterminada proporcionada por la referencia cultural actual.
En el ejemplo siguiente se da formato a valores de punto flotante con el especificador de formato de porcentaje:
let
Source =
{
Number.ToText(.2468013, "P", ""),
// Displays 24.68 %
Number.ToText(.2468013, "P", "hr-HR"),
// Displays 24,68 %
Number.ToText(.2468013, "P1", "en-US")
// Displays 24.7%
}
in
Source
Especificador de formato hexadecimal (X)
El especificador de formato hexadecimal ("X") convierte un número en una cadena de dígitos hexadecimales. El modelo de mayúsculas y minúsculas del especificador de formato indica si se van a usar caracteres en mayúsculas o en minúsculas para los dígitos hexadecimales mayores de 9. Por ejemplo, use "X" para generar "ABCDEF" y "x" para generar "abcdef". Este formato sólo es compatible con los tipos enteros.
El especificador de precisión indica el número mínimo de dígitos deseado en la cadena resultante. Si es preciso, el número se rellena con ceros a la izquierda para generar el número de dígitos que aporta el especificador de precisión.
La cadena de resultado no se ve afectada por la información de formato de la referencia cultural actual.
En el ejemplo siguiente se da formato a valores con el especificador de formato hexadecimal.
let
Source =
{
Number.ToText(0x2045e, "x"),
// Displays 2045e
Number.ToText(0x2045e, "X"),
// Displays 2045E
Number.ToText(0x2045e, "X8"),
// Displays 0002045E
Number.ToText(123456789, "X"),
// Displays 75BCD15
Number.ToText(123456789, "X2")
// Displays 75BCD15
}
in
Source
Notas
Esta sección contiene información adicional sobre el uso de cadenas de formato numérico estándar.
Tipos numéricos enteros y de punto flotante
Algunas descripciones de especificadores de formato numérico estándar hacen referencia a tipos numéricos enteros o de punto flotante. Los tipos numéricos enteros son Byte.Type
, Int8.Type
, Int16.Type
, Int32.Type
yInt64.Type
. Los tipos numéricos de punto flotante son Decimal.Type
, Single.Type
y Double.Type
.
Infinitos de punto flotante y NaN
Independientemente de la cadena de formato, si el valor de un Decimal.Type
, Single.Type
o Double.Type
tipo de punto flotante es infinito positivo, infinito negativo o no un número (NaN), la cadena con formato es el valor del Number.PositiveInfinityrespectivo , Number.NegativeInfinityo Number.NaN constantes especificadas por la referencia cultural aplicable actualmente.
Ejemplo de código
En el ejemplo siguiente se da formato a un punto flotante y un valor numérico entero mediante la referencia cultural en-US y todos los especificadores de formato numérico estándar. En este ejemplo se usan dos tipos numéricos concretos (Double.Type
y Int32.Type
), pero produciría resultados similares para cualquiera de los otros tipos base numéricos (Byte.Type
, Decimal.Type
, Int8.Type
, Int16.Type
, Int64.Type
y Single.Type
).
let
// Display text representations of numbers for en-US culture
culture = "en-US",
// Output floating point values
floating = Double.From(10761.937554),
#"Floating results" =
{
Text.Format("C: #{0}", {Number.ToText(floating, "C", culture)}), // Displays "C: $10,761.94"
Text.Format("E: #{0}", {Number.ToText(floating, "E03", culture)}), // Displays "E: 1.076E+004"
Text.Format("F: #{0}", {Number.ToText(floating, "F04", culture)}), // Displays "F: 10761.9376"
Text.Format("G: #{0}", {Number.ToText(floating, "G", culture)}), // Displays "G: 10761.937554"
Text.Format("N: #{0}", {Number.ToText(floating, "N03", culture)}), // Displays "N: 10,761.938"
Text.Format("P: #{0}", {Number.ToText(floating/10000, "P02", culture)}) // Displays "P: 107.62%"
},
// Output integral values
integral = Int32.From(8395),
#"Integral results" =
{
Text.Format("C: #{0}", {Number.ToText(integral, "C", culture)}), // Displays "C: $8,395.00"
Text.Format("D: #{0}", {Number.ToText(integral, "D6", culture)}), // Displays "D: 008395"
Text.Format("E: #{0}", {Number.ToText(integral, "E03", culture)}), // Displays "E: 8.395E+003"
Text.Format("F: #{0}", {Number.ToText(integral, "F01", culture)}), // Displays "F: 8395.0"
Text.Format("G: #{0}", {Number.ToText(integral, "G", culture)}), // Displays "G: 8395"
Text.Format("N: #{0}", {Number.ToText(integral, "N01", culture)}), // Displays "N: 8,395.0"
Text.Format("P: #{0}", {Number.ToText(integral/10000, "P02", culture)}), // Displays "P: 83.95%"
Text.Format("X: 0x#{0}", {Number.ToText(integral, "X", culture)}) // Displays "X: 0x20CB"
},
results = #"Floating results" & #"Integral results"
in
results