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

C# Double.IsPositiveInfinity() 메서드 완벽 가이드 – 양의 무한대 판별 방법

C#의 Double.IsPositiveInfinity() 메서드는 지정된 숫자가 양의 무한대(+∞)로 평가되는지 여부를 나타내는 부울 값을 반환합니다. 값이 정확히 양의 무한대라면 true, 그렇지 않다면 false를 리턴합니다.


참고로 C#에서 double 형식은 0으로 나누어도 예외가 발생하지 않고 양 또는 음의 무한대가 되므로, 연산 결과가 무한대인지 확인해야 하는 상황에서 이 메서드가 유용하게 사용됩니다.


구문

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

public static bool IsPositiveInfinity (double val);

여기서 val은 검사 대상이 되는 배정밀도 부동 소수점 수입니다.


예제 1: 양의 무한대 값 확인하기

다음 예제에서는 1.0을 0.0으로 나눈 결과를 검사합니다.

using System;
public class Demo {
   public static void Main() {
      double d = 1.0/0.0;
      Console.WriteLine("Double 값 = "+d);
      Console.WriteLine("Double 값의 해시코드 = "+d.GetHashCode());
      TypeCode type = d.GetTypeCode();
      Console.WriteLine("Double 값의 TypeCode = "+type);
      Console.WriteLine("무한대 여부? = "+Double.IsInfinity(d));
      Console.WriteLine("지정된 값이 NaN인가? = "+Double.IsNaN(d));
      Console.WriteLine("음의 무한대로 평가되는가? = "+Double.IsNegativeInfinity(d));
      Console.WriteLine("양의 무한대로 평가되는가? = "+Double.IsPositiveInfinity(d));
   }
}

출력 결과

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

Double 값 = ∞
Double 값의 해시코드 = 2146435072
Double 값의 TypeCode = Double
무한대 여부? = True
지정된 값이 NaN인가? = False
음의 무한대로 평가되는가? = False
양의 무한대로 평가되는가? = True

1.0/0.0의 결과는 양의 무한대이므로 IsPositiveInfinity()true를 반환하는 것을 확인할 수 있습니다.


예제 2: 음의 무한대 값 확인하기

이번에는 -50.0을 0.0으로 나눈 결과를 검사해 보겠습니다.

using System;
public class Demo {
   public static void Main() {
      double d = -50.0/0.0;
      Console.WriteLine("Double 값 = "+d);
      Console.WriteLine("Double 값의 해시코드 = "+d.GetHashCode());
      TypeCode type = d.GetTypeCode();
      Console.WriteLine("Double 값의 TypeCode = "+type);
      Console.WriteLine("무한대 여부? = "+Double.IsInfinity(d));
      Console.WriteLine("지정된 값이 NaN인가? = "+Double.IsNaN(d));
      Console.WriteLine("음의 무한대로 평가되는가? = "+Double.IsNegativeInfinity(d));
      Console.WriteLine("양의 무한대로 평가되는가? = "+Double.IsPositiveInfinity(d));
   }
}

출력 결과

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

Double 값 = -∞
Double 값의 해시코드 = -1048576
Double 값의 TypeCode = Double
무한대 여부? = True
지정된 값이 NaN인가? = False
음의 무한대로 평가되는가? = True
양의 무한대로 평가되는가? = False

결과가 음의 무한대(-∞)이기 때문에 이번에는 IsNegativeInfinity()true를 반환하고, IsPositiveInfinity()false를 반환합니다.


함께 알아두면 좋은 관련 메서드

  • Double.IsNegativeInfinity(): 값이 음의 무한대(-∞)인지 확인합니다.
  • Double.IsInfinity(): 값이 양의 무한대 또는 음의 무한대 중 하나인지 확인합니다.
  • Double.IsNaN(): 값이 NaN(숫자가 아님)인지 확인합니다.

정리

Double.IsPositiveInfinity() 메서드는 부동 소수점 연산 결과가 양의 무한대로 오버플로되었는지 손쉽게 판별할 수 있는 방법을 제공합니다. 나눗셈 결과나 큰 수의 연산 결과를 다룰 때 무한대 여부를 반드시 검사해야 안전한 코드를 작성할 수 있습니다.