암시적 숫자 변환 표(C# 참조)Implicit numeric conversions table (C# Reference)

다음 표에서는 .NET 숫자 형식 간의 미리 정의된 암시적 숫자 변환을 보여 줍니다.The following table shows the predefined implicit conversions between .NET numeric types.

시작From 대상To
sbytesbyte short, int, long, float, double 또는 decimalshort, int, long, float, double, or decimal
bytebyte short, ushort, int, uint, long, ulong, float, double 또는 decimalshort, ushort, int, uint, long, ulong, float, double, or decimal
charchar ushort, int, uint, long, ulong, float, double 또는 decimalushort, int, uint, long, ulong, float, double, or decimal
shortshort int, long, float, double 또는 decimalint, long, float, double, or decimal
ushortushort int, uint, long, ulong, float, double 또는 decimalint, uint, long, ulong, float, double, or decimal
intint long, float, double 또는 decimallong, float, double, or decimal
uintuint long, ulong, float, double 또는 decimallong, ulong, float, double, or decimal
longlong float, double또는 decimalfloat, double, or decimal
ulongulong float, double또는 decimalfloat, double, or decimal
floatfloat double

설명Remarks

  • 모든 정수 형식은 암시적으로 모든 부동 소수점 형식으로 전환할 수 있습니다.Any integral type is implicitly convertible to any floating-point type.

  • int, uint, long 또는 ulong에서 float로 변환하고 long 또는 ulong에서 double로 변환하는 동안 전체 자릿수가 손실될 수도 있지만 크기는 손실되지 않습니다.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.

  • char, bytesbyte 형식으로 암시적 변환은 없습니다.There are no implicit conversions to the char, byte, and sbyte types.

  • doubledecimal 형식에서 암시적 변환은 없습니다.There are no implicit conversions from the double and decimal types.

  • decimal 형식과 float 또는 double 형식 간의 암시적 변환은 없습니다.There are no implicit conversions between the decimal type and the float or double types.

  • 형식 int의 상수 식 값(예: 정수 리터럴로 표시되는 값)은 대상 형식 범위 내에 있는 sbyte, byte, short, ushort, uint 또는 ulong으로 변환할 수 있습니다.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'
    

암시적 변환에 대한 자세한 내용은 C# 언어 사양암시적 변환 섹션을 참조하세요.For more information about implicit conversions, see the Implicit conversions section of the C# language specification.

참고 항목See also