C#의 Decimal.ToUInt32() 메서드는 지정된 Decimal 값을 그에 해당하는 32비트 부호 없는 정수(uint)로 변환할 때 사용됩니다. 소수점 이하 값은 잘리지 않고 반올림되어 정수로 반환됩니다.
구문(Syntax)
이 메서드의 기본 구문은 다음과 같습니다.
public static uint ToUInt32 (decimal val);
여기서 매개변수 val은 32비트 부호 없는 정수로 변환하고자 하는 decimal 숫자입니다.
주요 특징
- 반환값은
uint(0 ~ 4,294,967,295) 범위입니다. - 소수 부분은 반올림되어 가장 가까운 정수로 처리됩니다(0.5는 올림).
- 입력 값이 음수이거나
UInt32.MaxValue보다 크면OverflowException이 발생합니다.
예제 1
Decimal.ToUInt32() 메서드를 실제로 구현한 첫 번째 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
Decimal val = 0.001m;
Console.WriteLine("Decimal value = "+val);
uint res = Decimal.ToUInt32(val);
Console.WriteLine("32-bit unsigned integer = "+res);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Decimal value = 0.001 32-bit unsigned integer = 0
0.001은 정수로 변환 시 0에 가장 가까우므로 결과가 0으로 출력됩니다.
예제 2
이번에는 다른 값을 사용한 두 번째 예제를 확인해 보겠습니다.
using System;
public class Demo {
public static void Main(){
Decimal val = 67.487m;
Console.WriteLine("Decimal value = "+val);
uint res = Decimal.ToUInt32(val);
Console.WriteLine("32-bit unsigned integer = "+res);
}
}출력 결과
실행 결과는 다음과 같습니다.
Decimal value = 67.487 32-bit unsigned integer = 67
67.487은 반올림 과정에서 소수점 이하가 버려져 67이라는 32비트 부호 없는 정수로 변환된 것을 확인할 수 있습니다.
정리
Decimal.ToUInt32() 메서드는 decimal 타입의 값을 안전하게 uint 타입으로 변환해야 할 때 유용합니다. 단, 음수나 허용 범위를 초과하는 값이 입력되면 예외가 발생하므로, 변환 전에 값의 범위를 검증하는 것이 좋습니다.