Tabla de conversiones numéricas explícitas (Referencia de C#)
Las conversiones numéricas explícitas se utilizan para convertir cualquier tipo numérico a cualquier otro tipo numérico, para el que no existe conversión implícita, mediante una expresión que utilice el operador de conversión explícita. La siguiente tabla muestra estas conversiones.
From |
Para |
---|---|
byte, ushort, uint, ulong o char |
|
Sbyte o char |
|
sbyte, byte, ushort, uint, ulong o char |
|
sbyte, byte, short o char |
|
sbyte, byte, short, ushort, uint, ulong, o char |
|
sbyte, byte, short, ushort, int o char |
|
sbyte, byte, short, ushort, int, uint, ulong o char |
|
sbyte, byte, short, ushort, int, uint, long o char |
|
sbyte, byte o short |
|
sbyte, byte, short, ushort, int, uint, long, ulong, char o decimal |
|
sbyte, byte, short, ushort, int, uint, long, ulong, char, float o decimal |
|
sbyte, byte, short, ushort, int, uint, long, ulong, char, float o double |
Comentarios
Las conversiones numéricas explícitas pueden producir pérdida de precisión o provocar excepciones.
Cuando se convierte un valor decimal en un tipo integral, este valor se redondea hacia cero al valor entero más próximo. Si el valor entero resultante queda fuera del intervalo del tipo de destino, se produce una excepción OverflowException.
Cuando se convierte un valor double o float en un tipo integral, el valor se trunca. Si el valor entero resultante queda fuera del intervalo del valor de destino, el resultado depende del contexto de comprobación de desbordamiento. En un contexto comprobado, se produce una excepción OverflowException, mientras que en un contexto no comprobado, el resultado es un valor no especificado del tipo de destino.
Cuando se convierte double en float, el valor double se redondea al valor float más próximo. Si el valor de tipo double es demasiado pequeño o demasiado grande para ajustarse al tipo de destino, el resultado será cero o infinito.
Cuando se convierte float o double en decimal, el valor de origen se convierte en una representación decimal y se redondea al número más próximo después de la vigésimo octava posición decimal si es necesario. Según el valor de origen, se puede producir uno de los siguientes resultados:
Si el valor de origen es demasiado pequeño para representarlo como decimal, el resultado se convierte en cero.
Si el valor de origen es NaN (no es un número), infinito o demasiado grande para ser representado como decimal, se produce una excepción OverflowException.
Cuando se convierte decimal en float o double, el valor decimal se redondea al valor double o float más próximo.
Para obtener más información sobre conversión explícita, vea Explícita en la Especificación del lenguaje C#. Para obtener información sobre cómo tener acceso a la especificación, vea Especificación del lenguaje C#.
Vea también
Referencia
Conversiones de tipos (Guía de programación de C#)
() (operador) (Referencia de C#)
Tabla de tipos enteros (Referencia de C#)
Tabla de tipos integrados (Referencia de C#)
Tabla de conversiones numéricas implícitas (Referencia de C#)