C#에서 Int16(short)을 Decimal로 암시적 변환하기
C#의 short 형식은 16비트 부호 있는 정수, 즉 Int16을 나타냅니다. 반면 decimal 형식은 훨씬 넓은 값 범위와 높은 정밀도를 제공하기 때문에, short가 가질 수 있는 모든 값을 데이터 손실 없이 안전하게 담을 수 있습니다. 이러한 이유로 C# 컴파일러는 별도의 캐스팅 없이 자동으로 변환을 수행하는 암시적 변환(implicit conversion)을 지원합니다.
16비트 부호 있는 정수를 Decimal로 암시적으로 변환하려면 먼저 short 타입의 변수에 값을 설정합니다.
short val = -32768;
그다음, 단순히 대입 연산자(=)를 사용해 값을 할당하면 됩니다. 명시적인 형변환(cast) 코드는 필요하지 않습니다.
dec = val;
전체 동작 과정을 확인할 수 있는 예제를 살펴보겠습니다.
예제
using System;
public class Demo {
public static void Main() {
short val = -32768;
decimal dec;
Console.WriteLine("Implicit conversion from Int16 to Decimal");
dec = val;
Console.WriteLine("Decimal : " + dec);
}
}출력
Implicit conversion from Int16 to Decimal Decimal : -32768
실행 결과를 보면 short 값인 -32768이 어떠한 변환 코드 없이도 decimal 변수에 그대로 저장된 것을 확인할 수 있습니다. 이는 decimal이 short의 전체 표현 범위(-32,768 ~ 32,767)를 완전히 포함하고 있기 때문이며, 따라서 변환 과정에서 값이 잘리거나 손실될 위험이 전혀 없습니다.