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();
        }
    }
}