C#/C# 200제
[C# 200제] 013. 캐스팅과 자료형 변환
suniverse
2023. 7. 20. 21:00
✍ 암시적 형변환
float을 double로 형변환하는 경우처럼 작은 자료형을 더 큰 자료형으로 변환할 떄는 데이터의 손실이 생기지 않습니다. 그래서 이런 경우에는 자동으로 형이 변환되고 이것을 암시적 형변환이라고 합니다.
✍ 명시적 형변환
반대로 double을 int로 변환하는 경우처럼 큰 자료형을 작은 자료형으로 변환할 때는 데이터가 손실될 수 있습니다. 이 경우에는 강제로 형변환을 시켜주어야 합니다.
명시적 형변환을 위해서는 변환하고자 하는 자료형으로 기존 자료형을 캐스트(cast) 해줍니다. 예를 들어 double 변수 x가 있을 때 int a = (int)x; 라고 하면 x를 int로 바꾼 후에 int 변수 a에 할당합니다. 이때 x의 값이 소수점 아래 수를 가지고 있다면 정수로 변환되면서 소수점 아래 숫자는 잃어버리게 된다.
using System;
namespace Hello
{
class Program
{
static void Main(string[] args)
{
int num = 2147483647;
long bigNum = num; // 암시적 형변환
Console.WriteLine(bigNum);
double x = 1234.5;
int a;
a = (int)x;
Console.WriteLine(a);
Console.ReadKey();
}
}
}