형 변환(Type Conversion)이란 한 데이터 타입을 다른 데이터 타입으로 변환하는 과정을 말합니다. C#에서는 암시적 변환과 명시적 변환이 있으며, 그중 명시적 변환(Explicit Conversion)은 사용자가 직접 변환을 지정하는 방식으로, 미리 정의된 함수와 함께 캐스트 연산자(cast operator)를 반드시 사용해야 합니다.
캐스트 연산자의 기본 개념
캐스트 연산자는 변환하고자 하는 대상 타입을 괄호 ( ) 안에 명시하여 사용합니다. 예를 들어 double 타입의 값을 int 타입으로 변환할 때는 다음과 같이 작성합니다.
x = (int)a;
이처럼 캐스트 연산자를 사용하면 컴파일러에게 "이 값을 해당 타입으로 강제로 변환하겠다"고 알려주는 것입니다. 다만, 큰 범위의 타입을 작은 범위의 타입으로 변환할 때는 데이터 손실이 발생할 수 있다는 점에 유의해야 합니다.
예제: double을 int로 캐스팅하기
다음은 double 타입 변수를 int 타입으로 명시적으로 형 변환하는 예제입니다.
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
double a = 4563.56; // double 타입 변수 선언
int x;
x = (int)a; // 캐스트 연산자를 사용한 명시적 형 변환
Console.WriteLine(x); // 결과 출력
Console.ReadKey();
}
}
}
실행 결과
4563
위 코드에서 핵심 부분은 바로 이 줄입니다.
x = (int)a;
double 값 4563.56을 int로 캐스팅하면 소수점 이하 자릿수가 잘리고 정수 부분인 4563만 남게 됩니다. 즉, 캐스트 연산자를 통한 변환에서는 소수점이 반올림되지 않고 잘려나간다(truncation)는 점을 기억해 두는 것이 좋습니다.
정리
C#의 캐스트 연산자는 서로 다른 데이터 타입 간의 명시적 변환을 가능하게 해주는 도구입니다. 사용 방법은 간단하지만, 변환 과정에서 데이터 손실이 발생할 수 있으므로 변환 전후의 타입 범위를 항상 고려하는 것이 안전한 프로그래밍의 기본입니다.