Tabla de conversiones numéricas explícitas (Referencia de C#)

Actualización: noviembre 2007

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.

De

Para

sbyte

byte, ushort, uint, ulong o char

byte

Sbyte o char

short

sbyte, byte, ushort, uint, ulong o char

ushort

sbyte, byte, short o char

int

sbyte, byte, short, ushort, uint, ulongo char

uint

sbyte, byte, short, ushort, int o char

long

sbyte, byte, short, ushort, int, uint, ulong o char

ulong

sbyte, byte, short, ushort, int, uint, long o char

char

sbyte, byte o short

float

sbyte, byte, short, ushort, int, uint, long, ulong, charo decimal

double

sbyte, byte, short, ushort, int, uint, long, ulong, char, floato decimal

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 6.2 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

Conceptos

Guía de programación de C#

Referencia

Tabla de tipos integrales (Guía de programación de C#)

Tabla de tipos integrados (Referencia de C#)

Tabla de conversiones numéricas implícitas (Referencia de C#)

Otros recursos

Referencia de C#