더북(TheBook)

하지만 반대로 long 형식의 변수를 int 형식의 변수에 저장하려면 다음 샘플 코드처럼 명시적으로 (int)를 붙여 longint로 변경해야 합니다. 명시적 형 변환은 캐스팅(casting)이라고도 합니다.

> long number1 = 1234;
> int number2 = (int)number1; //long 형식의 변수를 int 형식의 변수로 변환해서 저장
> number2
1234

이 경우에는 데이터가 손실되어 엉뚱한 데이터가 저장될 수도 있습니다. 에러는 발생하지 않지만 잘못된 값이 저장되는 경우를 살펴보겠습니다. 다음 내용을 입력한 후 실행해 보세요. 참고로 소스 코드에서 변수 이름은 L의 소문자인 lI의 소문자인 i를 사용했습니다.

long을 int로 명시적 형 변환: TypeConversionError.cs

using System;

class TypeConversionError
{
    static void Main()
    {
        long l = long.MaxValue; //① long 형식 변수의 가장 큰 값을 l 변수에 저장
        Console.WriteLine($"l의 값 : {l}");
        int i = (int)l;             //② l 변수 값을 int 형식으로 변환하여     i 변수에 저장
        Console.WriteLine($"i의 값 : {i}");
    }
}

실행 결과

l의 값 : 9223372036854775807
i의 값 : -1
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.