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

C# Decimal.ToUInt64() 메서드 완벽 정리 - 문법, 예제, 주의 사항

C#의 Decimal.ToUInt64() 메서드는 지정된 Decimal 값을 그에 해당하는 64비트 부호 없는 정수(ulong)로 변환합니다. 소수점 이하 값은 반올림되지 않고 0을 향해 절삭되며, 음수나 UInt64.MaxValue보다 큰 값이 입력되면 OverflowException이 발생합니다.

문법

기본 문법은 다음과 같습니다.

public static ulong ToUInt64 (decimal val);

위 코드에서 val은 64비트 부호 없는 정수로 변환할 decimal 숫자를 의미합니다.

예제 1

Decimal.ToUInt64() 메서드의 기본적인 사용 예제를 살펴보겠습니다.

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() 메서드를 사용할 때는 다음 사항에 유의해야 합니다.

  • 변환 대상 값이 음수이면 OverflowException이 발생합니다.
  • 값이 UInt64.MaxValue(18,446,744,073,709,551,615)보다 큰 경우에도 예외가 발생합니다.
  • 소수점 이하는 반올림되지 않고 항상 0 방향으로 절삭됩니다.