Tablas de conversión de tipos en .NETType Conversion Tables in .NET

Una conversión de ampliación se produce cuando se convierte un valor de un tipo a otro tipo que es de igual o mayor tamaño.Widening conversion occurs when a value of one type is converted to another type that is of equal or greater size. Una conversión de restricción se produce cuando se convierte un valor de un tipo a otro tipo que es de un tamaño menor.A narrowing conversion occurs when a value of one type is converted to a value of another type that is of a smaller size. En las tablas de este tema se muestran los comportamientos de ambos tipos de conversiones.The tables in this topic illustrate the behaviors exhibited by both types of conversions.

conversiones de ampliaciónWidening Conversions

En la tabla siguiente se describen las conversiones de ampliación que pueden realizarse sin pérdida de información.The following table describes the widening conversions that can be performed without the loss of information.

TipoType Se puede convertir sin pérdida de datos aCan be converted without data loss to
Byte UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double, DecimalUInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal
SByte Int16, Int32, Int64, Single, Double, DecimalInt16, Int32, Int64, Single, Double, Decimal
Int16 Int32, Int64, Single, Double, DecimalInt32, Int64, Single, Double, Decimal
UInt16 UInt32, Int32, UInt64, Int64, Single, Double, DecimalUInt32, Int32, UInt64, Int64, Single, Double, Decimal
Char UInt16, UInt32, Int32, UInt64, Int64, Single, Double, DecimalUInt16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal
Int32 Int64, Double, DecimalInt64, Double, Decimal
UInt32 Int64, UInt64, Double, DecimalInt64, UInt64, Double, Decimal
Int64 Decimal
UInt64 Decimal
Single Double

Algunas conversiones de ampliación a Single o Double pueden provocar una pérdida de precisión.Some widening conversions to Single or Double can cause a loss of precision. En la tabla siguiente se describen las conversiones de ampliación que a veces se traducen en una pérdida de información.The following table describes the widening conversions that sometimes result in a loss of information.

TipoType Se puede convertir aCan be converted to
Int32 Single
UInt32 Single
Int64 Single, DoubleSingle, Double
UInt64 Single, DoubleSingle, Double
Decimal Single, DoubleSingle, Double

conversiones de restricciónNarrowing Conversions

Una conversión de restricción a Single o Double puede provocar una pérdida de información.A narrowing conversion to Single or Double can cause a loss of information. Si el tipo de destino no puede expresar correctamente la magnitud del origen, el tipo resultante se establece en la constante PositiveInfinity o NegativeInfinity.If the target type cannot properly express the magnitude of the source, the resulting type is set to the constant PositiveInfinity or NegativeInfinity. PositiveInfinity resulta al dividir un número positivo por cero y también se devuelve cuando el valor de Single o Double supera el valor del campo MaxValue.PositiveInfinity results from dividing a positive number by zero and is also returned when the value of a Single or Double exceeds the value of the MaxValue field. NegativeInfinity resulta al dividir un número negativo por cero y también se devuelve cuando el valor de Single o Double cae por debajo del valor del campo MinValue.NegativeInfinity results from dividing a negative number by zero and is also returned when the value of a Single or Double falls below the value of the MinValue field. Una conversión de Double a Single podría dar lugar a PositiveInfinity o NegativeInfinity.A conversion from a Double to a Single might result in PositiveInfinity or NegativeInfinity.

Una conversión de restricción también puede traducirse en una pérdida de información para otros tipos de datos.A narrowing conversion can also result in a loss of information for other data types. Pero se inicia OverflowException si el valor de un tipo que se va a convertir está fuera del intervalo especificado por los campos MaxValue y MinValue del tipo de destino y el tiempo de ejecución comprueba la conversión para asegurarse de que el valor del tipo de destino no supera su MaxValue o MinValue.However, an OverflowException is thrown if the value of a type that is being converted falls outside of the range specified by the target type's MaxValue and MinValue fields, and the conversion is checked by the runtime to ensure that the value of the target type does not exceed its MaxValue or MinValue. Las conversiones que se realizan con la clase System.Convert siempre se comprueban de esta manera.Conversions that are performed with the System.Convert class are always checked in this manner.

En la tabla siguiente se enumeran las conversiones que inician OverflowException con System.Convert o cualquier conversión comprobada si el valor del tipo que se va a convertir está fuera del intervalo definido del tipo resultante.The following table lists conversions that throw an OverflowException using System.Convert or any checked conversion if the value of the type being converted is outside the defined range of the resulting type.

TipoType Se puede convertir aCan be converted to
Byte SByte
SByte Byte, UInt16, UInt32, UInt64Byte, UInt16, UInt32, UInt64
Int16 Byte, SByte, UInt16Byte, SByte, UInt16
UInt16 Byte, SByte, Int16Byte, SByte, Int16
Int32 Byte, SByte, Int16, UInt16,UInt32Byte, SByte, Int16, UInt16,UInt32
UInt32 Byte, SByte, Int16, UInt16, Int32Byte, SByte, Int16, UInt16, Int32
Int64 Byte, SByte, Int16, UInt16, Int32,UInt32,UInt64Byte, SByte, Int16, UInt16, Int32,UInt32,UInt64
UInt64 Byte, SByte, Int16, UInt16, Int32, UInt32, Int64Byte, SByte, Int16, UInt16, Int32, UInt32, Int64
Decimal Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64
Single Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64
Double Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64

Vea tambiénSee also