Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Decimal.ToInt32() 메서드 완벽 정리 – 문법과 예제로 배우는 형 변환

C#의 Decimal.ToInt32() 메서드는 지정된 Decimal 값을 그에 상응하는 32비트 부호 있는 정수(int)로 변환할 때 사용됩니다. 소수점 이하 자릿수는 버려지며(0 방향으로 잘림), 결과는 int 타입으로 반환됩니다.

문법(Syntax)

메서드의 기본 문법은 다음과 같습니다.

public static int ToInt32 (decimal val);

여기서 val은 32비트 부호 있는 정수로 변환하고자 하는 decimal 숫자입니다.

주요 특징

  • 소수점 이하 값은 반올림이 아닌 잘림(truncation) 처리되어 0을 향해 반올림됩니다. 예를 들어 -3.578-3, 9.3529가 됩니다.
  • 변환 대상 값이 Int32 범위(-2,147,483,648 ~ 2,147,483,647)를 벗어나면 OverflowException이 발생합니다.
  • 명시적 캐스팅인 (int)decimalValue와 동일한 결과를 반환합니다.

예제 1

다음은 Decimal.ToInt32() 메서드를 구현한 첫 번째 예제입니다.

using System;
public class Demo {
    public static void Main(){
        Decimal val1 = 0.001m;
        Decimal val2 = 1.000m;
        Console.WriteLine("Decimal 값 1 = "+val1);
        Console.WriteLine("Decimal 값 2 = "+val2);
        int res1 = Decimal.ToInt32(val1);
        int res2 = Decimal.ToInt32(val2);
        Console.WriteLine("32비트 부호 있는 정수 (값1) = "+res1);
        Console.WriteLine("32비트 부호 있는 정수 (값2) = "+res2);
    }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Decimal 값 1 = 0.001
Decimal 값 2 = 1.000
32비트 부호 있는 정수 (값1) = 0
32비트 부호 있는 정수 (값2) = 1

0.001은 소수 부분이 잘려 0이 되고, 1.0001로 변환된 것을 확인할 수 있습니다.

예제 2

이번에는 음수를 포함한 값으로 Decimal.ToInt32() 메서드를 테스트해 보겠습니다.

using System;
public class Demo {
    public static void Main(){
        Decimal val1 = -3.578m;
        Decimal val2 = 9.352m;
        Console.WriteLine("Decimal 값 1 = "+val1);
        Console.WriteLine("Decimal 값 2 = "+val2);
        int res1 = Decimal.ToInt32(val1);
        int res2 = Decimal.ToInt32(val2);
        Console.WriteLine("32비트 부호 있는 정수 (값1) = "+res1);
        Console.WriteLine("32비트 부호 있는 정수 (값2) = "+res2);
    }
}

출력 결과

실행 결과는 다음과 같습니다.

Decimal 값 1 = -3.578
Decimal 값 2 = 9.352
32비트 부호 있는 정수 (값1) = -3
32비트 부호 있는 정수 (값2) = 9

음수인 경우에도 마찬가지로 소수점 이하가 버려지고 0 방향으로 변환되므로, -3.578-4가 아닌 -3이 됩니다. 이처럼 Decimal.ToInt32()는 단순하지만 잘림 동작과 범위 제한을 정확히 이해하고 사용하는 것이 중요합니다.