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

C#에서 Decimal 값을 64비트 부호 없는 정수(ulong)로 변환하는 방법

C#에서 Decimal.ToUInt64() 메서드를 사용하면 지정된 Decimal 값을 그에 해당하는 64비트 부호 없는 정수(ulong)로 변환할 수 있습니다.

이 메서드는 소수점 이하 자릿수를 버리고 정수 부분만 반환합니다. 단, 변환하려는 값이 ulong 타입의 범위(0 ~ 18,446,744,073,709,551,615)를 벗어나면 OverflowException이 발생할 수 있으므로 주의해야 합니다.

예제 1

다음은 Decimal 값을 64비트 부호 없는 정수로 변환하는 기본적인 예제입니다.

using System;
public class Demo {
   public static void Main() {
      Decimal val = 99.29m;
      Console.WriteLine("Decimal 값 = " + val);
      ulong res = Decimal.ToUInt64(val);
      Console.WriteLine("64비트 부호 없는 정수 = " + res);
   }
}

출력 결과

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

Decimal 값 = 99.29
64비트 부호 없는 정수 = 99

소수점 이하 값인 0.29는 잘리고, 정수 부분인 99만 반환되는 것을 확인할 수 있습니다.

예제 2

이번에는 1보다 작은 소수 값을 변환해 보겠습니다.

using System;
public class Demo {
   public static void Main() {
      Decimal val = 0.001m;
      Console.WriteLine("Decimal 값 = " + val);
      ulong res = Decimal.ToUInt64(val);
      Console.WriteLine("64비트 부호 없는 정수 = " + res);
   }
}

출력 결과

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

Decimal 값 = 0.001
64비트 부호 없는 정수 = 0

0.001처럼 정수 부분이 없는 값은 변환 시 0이 됩니다. 또한 Decimal.ToUInt64()는 음수 값을 처리할 수 없으므로, 음수가 입력될 가능성이 있다면 사전에 값의 범위를 검사하는 것이 좋습니다.