Tabla de conversiones numéricas implícitas (Referencia de C#)Implicit numeric conversions table (C# Reference)

En la tabla siguiente se muestran las conversiones implícitas predefinidas entre tipos numéricos de .NET.The following table shows the predefined implicit conversions between .NET numeric types.

DeFrom EnTo
sbytesbyte short, int, long, float, double o decimalshort, int, long, float, double, or decimal
bytebyte short, ushort, int, uint, long, ulong, float, double o decimalshort, ushort, int, uint, long, ulong, float, double, or decimal
charchar ushort, int, uint, long, ulong, float, double o decimalushort, int, uint, long, ulong, float, double, or decimal
shortshort int, long, float, double o decimalint, long, float, double, or decimal
ushortushort int, uint, long, ulong, float, double o decimalint, uint, long, ulong, float, double, or decimal
intint long, float, double o decimallong, float, double, or decimal
uintuint long, ulong, float, double o decimallong, ulong, float, double, or decimal
longlong float, doubleo decimalfloat, double, or decimal
ulongulong float, doubleo decimalfloat, double, or decimal
floatfloat double

ComentariosRemarks

  • Cualquier tipo entero es implícitamente convertible en cualquier tipo de punto flotante.Any integral type is implicitly convertible to any floating-point type.

  • Es posible que en las conversiones de int, uint, long o ulong en float y de long o ulong en double se pierda la precisión, pero no la magnitud.Precision but not magnitude might be lost in the conversions from int, uint, long, or ulong to float and from long or ulong to double.

  • No hay ninguna conversión implícita a los tipos char, byte y sbyte.There are no implicit conversions to the char, byte, and sbyte types.

  • No hay ninguna conversión implícita de los tipos double y decimal.There are no implicit conversions from the double and decimal types.

  • No hay ninguna conversión implícita entre el tipo decimal y el tipo float o double.There are no implicit conversions between the decimal type and the float or double types.

  • Un valor de una expresión constante de tipo int (por ejemplo, un valor representado por un literal entero) se puede convertir en sbyte, byte, short, ushort, uint o ulong, siempre que esté dentro del intervalo del tipo de destino:A value of a constant expression of type int (for example, a value represented by an integral literal) can be converted to sbyte, byte, short, ushort, uint, or ulong, provided it's within the range of the destination type:

    byte a = 13;    // Compiles
    byte b = 300;   // CS0031: Constant value '300' cannot be converted to a 'byte'
    

Para obtener más información sobre las conversiones implícitas, vea la sección Conversiones implícitas de la Especificación del lenguaje C#.For more information about implicit conversions, see the Implicit conversions section of the C# language specification.

Vea tambiénSee also