Compartir a través de


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.

Para obtener más información sobre las conversiones, vea Conversiones de tipos (Guía de programación de C#).

From

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

Valor int.

sbyte, byte, short, ushort, uint, ulong, o 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, char o decimal

double

sbyte, byte, short, ushort, int, uint, long, ulong, char, float o 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 entero, 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 entero, 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#)

Conceptos

Guía de programación de C#

Otros recursos

Referencia de C#