C#에서 지정된 Decimal 값을 이에 해당하는 16비트 부호 없는 정수(ushort)로 변환하려면 Decimal.ToUInt16() 메서드를 사용합니다. 이 메서드는 Decimal 값의 소수점 이하를 버리고 정수 부분만 반환합니다.
기본 사용 예제
다음은 Decimal 값을 16비트 부호 없는 정수로 변환하는 기본적인 코드입니다.
using System;
public class Demo {
public static void Main() {
Decimal val = 875.647m;
Console.WriteLine("Decimal value = " + val);
ushort res = Decimal.ToUInt16(val);
Console.WriteLine("16-bit unsigned integer = " + res);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Decimal value = 875.647 16-bit unsigned integer = 875
소수점 이하가 있는 작은 값의 변환 예제
이번에는 소수점 이하 자릿수를 가진 작은 Decimal 값을 변환해 보겠습니다.
using System;
public class Demo {
public static void Main() {
Decimal val = 0.001m;
Console.WriteLine("Decimal value = " + val);
ushort res = Decimal.ToUInt16(val);
Console.WriteLine("16-bit unsigned integer = " + res);
}
}출력 결과
실행 결과는 다음과 같습니다.
Decimal value = 0.001 16-bit unsigned integer = 0
주요 특징 및 주의사항
- 반올림 없이 절삭:
Decimal.ToUInt16()는 소수점 이하를 반올림하지 않고 잘라내므로, 875.647은 876이 아닌 875로 변환됩니다. - 음수 처리 불가: 이 메서드는 부호 없는 정수만 반환하므로 음수 값을 전달하면
OverflowException이 발생합니다. - 범위 제한: ushort 타입의 표현 범위는 0부터 65,535까지이며, 이 범위를 벗어나는 값도 오버플로우 예외를 발생시킵니다.