Especificador de formato | Nombre | Descripción |
|---|
C o c | Moneda | El número se convierte en una cadena que representa una cantidad de moneda. La conversión se controla mediante la información de formato de moneda del objeto NumberFormatInfo actual. El especificador de precisión indica el número deseado de cifras decimales. Si se omite el especificador de precisión, se utiliza la precisión de moneda predeterminada especificada en el objeto NumberFormatInfo actual. En el ejemplo siguiente se da formato a un valor Double con el especificador de formato de moneda.
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("C", CultureInfo.InvariantCulture))
' Displays 12,345.68
Console.WriteLine(value.ToString("C3", CultureInfo.InvariantCulture))
' Displays 12,345.679
Console.WriteLine(value.ToString("C3", _
CultureInfo.CreateSpecificCulture("en-US")))
' Displays $12,345.679
double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.InvariantCulture));
// Displays 12,345.68
Console.WriteLine(value.ToString("C3", CultureInfo.InvariantCulture));
// Displays 12,345.679
Console.WriteLine(value.ToString("C3",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays $12,345.679
|
D o d | Decimal | Este formato sólo es compatible con los tipos enteros. El número se convierte en una cadena de dígitos decimales (0-9), precedida por un signo menos si el número es negativo. 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. En el ejemplo siguiente se da formato a un valor Int32 con el especificador de formato decimal.
Dim value As Integer
value = 12345
Console.WriteLine(value.ToString("D"))
' Displays 12345
Console.WriteLine(value.ToString("D8"))
' Displays 00012345
value = -12345
Console.WriteLine(value.ToString("D"))
' Displays -12345
Console.WriteLine(value.ToString("D8"))
' Displays -00012345
int value;
value = 12345;
Console.WriteLine(value.ToString("D"));
// Displays 12345
Console.WriteLine(value.ToString("D8"));
// Displays 00012345
value = -12345;
Console.WriteLine(value.ToString("D"));
// Displays -12345
Console.WriteLine(value.ToString("D8"));
// Displays -00012345
|
E o e | Científico (exponencial) | El número se convierte en una cadena de caracteres del tipo "-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 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. La mayúscula o minúscula del especificador de formato indica si debemos 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. En el ejemplo siguiente se da formato a un valor Double con el especificador de formato científico.
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture))
' Displays 1.234568E+004
Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture))
' Displays 1.2345678900E+004
Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture))
' Displays 1.2346e+004
Console.WriteLine(value.ToString("E", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 1,234568E+004
double value = 12345.6789;
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture));
// Displays 1.234568E+004
Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture));
// Displays 1.2345678900E+004
Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture));
// Displays 1.2346e+004
Console.WriteLine(value.ToString("E",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 1,234568E+004
|
F o f | Punto fijo | El número se convierte en una cadena del tipo "-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, la precisión numérica predeterminada se especifica en la propiedad NumberDecimalDigits del objeto NumberFormatInfo actual. En el ejemplo siguiente se da formato a un valor Double e Int32 con el especificador de formato de punto fijo.
Dim integerNumber As Integer
integerNumber = 17843
Console.WriteLine(integerNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 17843.00
integerNumber = -29541
Console.WriteLine(integerNumber.ToString("F3", CultureInfo.InvariantCulture))
' Displays -29541.000
Dim doubleNumber As Double
doubleNumber = 18934.1879
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 18934.19
Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture))
' Displays 18934
doubleNumber = -1898300.1987
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture))
' Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3", _
CultureInfo.CreateSpecificCulture("es-ES")))
' Displays -1898300,199
int integerNumber;
integerNumber = 17843;
Console.WriteLine(integerNumber.ToString("F",
CultureInfo.InvariantCulture));
// Displays 17843.00
integerNumber = -29541;
Console.WriteLine(integerNumber.ToString("F3",
CultureInfo.InvariantCulture));
// Displays -29541.000
double doubleNumber;
doubleNumber = 18934.1879;
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture));
// Displays 18934.19
Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture));
// Displays 18934
doubleNumber = -1898300.1987;
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture));
// Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3",
CultureInfo.CreateSpecificCulture("es-ES")));
// Displays -1898300,199
|
G o g | General | El número se convierte al punto fijo o la notación científica más compactos, dependiendo del tipo de número y de si hay un especificador de precisión. Si se omite el especificador de precisión o es cero, el tipo de número determina la precisión predeterminada, tal como se indica en la lista siguiente. 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 punto decimal si es necesario y se omiten los ceros finales. Si está presente el especificador de precisión y el número de dígitos significativos del resultado supera la precisión especificada, los dígitos finales sobrantes se eliminan mediante el redondeo. La excepción a la regla anterior ocurre cuando el número es un valor Decimal y se omite el especificador de precisión. En tal caso, se utiliza siempre la notación de punto fijo y se conservan los ceros finales. Si se utiliza la notación científica, el exponente en el resultado lleva el prefijo "E" si el especificador de formato es "G", o "e" si el especificador de formato es "g". En el ejemplo siguiente se da formato a valores de punto flotante ordenados con el especificador de formato general.
Dim number As Double
number = 12345.6789
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 12345.6789
Console.WriteLine(number.ToString("G", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 12345,6789
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture))
' Displays 12345.68
number = .0000023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 2.3E-06
Console.WriteLine(number.ToString("G", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 2,3E-06
number = .0023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 0.0023
number = 1234
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture))
' Displays 1.2E+03
number = Math.Pi
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture))
' Displays 3.1416
double number;
number = 12345.6789;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 12345.6789
Console.WriteLine(number.ToString("G",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 12345,6789
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture));
// Displays 12345.68
number = .0000023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 2.3E-06
Console.WriteLine(number.ToString("G",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 2,3E-06
number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 0.0023
number = 1234;
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture));
// Displays 1.2E+03
number = Math.PI;
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture));
// Displays 3.1416
|
N o n | Número | El número se convierte en una cadena con la forma "-d,ddd,ddd.ddd…", donde '-' hace referencia a un símbolo de número negativo, si es necesario; 'd', a un dígito (0-9); ',', al separador de miles entre los grupos de números; y '.' al símbolo de separador decimal. El modelo de números negativos, el tamaño del grupo de número, el separador de miles y el separador decimal se especifican mediante las propiedades NumberNegativePattern, NumberGroupSizes, NumberGroupSeparator y NumberDecimalSeparator, respectivamente, del objeto NumberFormatInfo actual. El especificador de precisión indica el número deseado de cifras decimales. Si se omite el especificador de precisión, la precisión numérica predeterminada se especifica en la propiedad NumberDecimalDigits del objeto NumberFormatInfo actual. En el ejemplo siguiente se da formato a valores de punto flotante ordenados con el especificador de formato numérico.
Dim dblValue As Double = -12445.6789
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture))
' Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1", _
CultureInfo.CreateSpecificCulture("sv-SE")))
' Displays -12445,7
Dim intValue As Integer = 123456789
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture))
' Displays 123,456,789.0
double dblValue = -12445.6789;
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture));
// Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1",
CultureInfo.CreateSpecificCulture("sv-SE")));
// Displays -12445,7
int intValue = 123456789;
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture));
// Displays 123,456,789.0
|
P o p | Porcentaje | El número se convierte en una cadena que representa un porcentaje, tal como se define en la propiedad NumberFormatInfo..::.PercentNegativePattern si el número es negativo o en la propiedad NumberFormatInfo..::.PercentPositivePattern si el número es positivo. El número convertido se multiplica por 100 para presentarlo como un porcentaje. El especificador de precisión indica el número deseado de cifras decimales. Si se omite el especificador de precisión, se utiliza la precisión numérica predeterminada especificada en el objeto NumberFormatInfo actual. En el ejemplo siguiente se da formato a valores de punto flotante con el especificador de formato de porcentaje.
Dim number As Double = .2468013
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture))
' Displays 24.68 %
Console.WriteLine(number.ToString("P", _
CultureInfo.CreateSpecificCulture("hr-HR")))
' Displays 24,68%
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture))
' Displays 24.7 %
double number = .2468013;
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture));
// Displays 24.68 %
Console.WriteLine(number.ToString("P",
CultureInfo.CreateSpecificCulture("hr-HR")));
// Displays 24,68%
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture));
// Displays 24.7 %
|
R o r | Acción de ida y vuelta | Este formato sólo es compatible con los tipos Single y Double. El especificador de acción de ida y vuelta garantiza que un valor numérico convertido en cadena volverá a tomar el mismo valor numérico. Cuando se da formato a un valor numérico mediante este especificador, primero se comprueba empleando el formato general, con 15 espacios de precisión para Double y 7 espacios de precisión para Single. Si el valor vuelve a ser efectivamente el mismo valor numérico, se le dará formato utilizando el especificador de formato general. Sin embargo, si el valor no recupera con éxito el mismo valor numérico, se le dará formato empleando 17 dígitos de precisión para Double y 9 dígitos de precisión para Single. Aunque haya un especificador de precisión presente, se omite. Los especificadores de ida y vuelta tienen prioridad sobre la precisión al utilizar este especificador. En el ejemplo siguiente se da formato a valores Double con el especificador de formato de ida y vuelta.
Dim value As Double
value = Math.Pi
Console.WriteLine(value.ToString("r"))
' Displays 3.1415926535897931
Console.WriteLine(value.ToString("r", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 3,1415926535897931
value = 1.623e-21
Console.WriteLine(value.ToString("r"))
' Displays 1.623E-21
double value;
value = Math.PI;
Console.WriteLine(value.ToString("r"));
// Displays 3.1415926535897931
Console.WriteLine(value.ToString("r",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 3,1415926535897931
value = 1.623e-21;
Console.WriteLine(value.ToString("r"));
// Displays 1.623E-21
|
X o x | Hexadecimal | Este formato sólo es compatible con los tipos enteros. El número se convierte en una cadena de dígitos hexadecimales. La mayúscula o minúscula del especificador de formato indica si hay que emplear los caracteres en mayúsculas o en minúsculas para los dígitos hexadecimales mayores que 9. Por ejemplo, se utiliza 'X' para generar "ABCDEF"y 'x' para generar "abcdef". 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. En el ejemplo siguiente se da formato a valores Int32 con el especificador de formato hexadecimal.
Dim value As Integer
value = &h2045e
Console.WriteLine(value.ToString("x"))
' Displays 2045e
Console.WriteLine(value.ToString("X"))
' Displays 2045E
Console.WriteLine(value.ToString("X8"))
' Displays 0002045E
value = 123456789
Console.WriteLine(value.ToString("X"))
' Displays 75BCD15
Console.WriteLine(value.ToString("X2"))
' Displays 75BCD15
int value;
value = 0x2045e;
Console.WriteLine(value.ToString("x"));
// Displays 2045e
Console.WriteLine(value.ToString("X"));
// Displays 2045E
Console.WriteLine(value.ToString("X8"));
// Displays 0002045E
value = 123456789;
Console.WriteLine(value.ToString("X"));
// Displays 75BCD15
Console.WriteLine(value.ToString("X2"));
// Displays 75BCD15
|
Cualquier otro carácter único | (Especificador desconocido) | (Un especificador desconocido provoca una excepción FormatException en tiempo de ejecución). |