형식 변환표
확대 변환은 특정 형식의 값을 크기가 같거나 큰 다른 형식의 값으로 변환하는 것입니다. 이와는 반대로 축소 변환은 특정 형식의 값을 크기가 작은 다른 형식의 값으로 변환하는 것입니다. 이 항목의 표에서는 두 변환 형식에서 나타나는 동작에 대해 설명합니다.
확대 변환
다음 표는 정보 손실 없이 변환을 수행할 수 있는 확대 변환을 나타냅니다.
형식 |
데이터 손실 없이 변환할 수 있는 형식 |
---|---|
UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal |
|
UInt16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal |
|
Single 또는 Double로 확대 변환을 수행하는 일부 경우에 정밀도가 손실될 수 있습니다. 다음 표는 가끔씩 정보가 손실될 수 있는 확대 변환을 나타냅니다.
형식 |
변환할 수 있는 형식 |
---|---|
축소 변환
Single 또는 Double로 축소 변환을 수행하는 경우에 정보가 손실될 수 있습니다. 대상 형식에서 소스의 크기를 제대로 표시할 수 없는 경우 결과 형식은 상수인 PositiveInfinity 또는 NegativeInfinity로 설정됩니다. PositiveInfinity는 양수를 0으로 나눈 경우에 생성되며 Single 또는 Double이 MaxValue 필드의 값을 초과하는 경우에도 반환됩니다. NegativeInfinity는 음수를 0으로 나눈 경우에 생성되며 Single 또는 Double이 MinValue 필드의 값보다 작은 경우에도 반환됩니다. Double에서 Single로 변환하면 PositiveInfinity 또는 NegativeInfinity가 생성될 수 있습니다.
축소 변환에서는 또한 다른 데이터 형식의 정보도 손실될 수 있습니다. 그러나 변환되는 형식의 값이 대상 형식의 MaxValue 및 MinValue 필드에 지정된 범위 밖에 있고 런타임에서 대상 형식의 값이 MaxValue 또는 MinValue 필드의 값을 초과하지 않는지 확인하기 위해 이 변환을 검사하는 경우에는 OverflowException이 throw됩니다. System.Convert 클래스에 의해 수행되는 변환은 항상 이런 식으로 검사됩니다.
다음 표에는 변환되는 형식 값이 결과 형식의 정의된 범위 밖에 있는 경우, System.Convert 또는 검사된 변환을 사용하여 OverflowException을 throw하는 변환의 목록이 나와 있습니다.
형식 |
변환할 수 있는 형식 |
---|---|