C#의 Double.IsInfinity() 메서드는 지정된 숫자가 양의 무한대(Positive Infinity) 또는 음의 무한대(Negative Infinity)로 평가되는지 여부를 나타내는 부울 값을 반환합니다. 부동 소수점 연산에서 0으로 나누기 등의 상황에서 발생할 수 있는 무한대 값을 손쉽게 검사할 때 유용하게 사용됩니다.
구문
메서드의 기본 구문은 다음과 같습니다.
public static bool IsInfinity (double d);
여기서 매개변수 d는 검사 대상이 되는 배정밀도(double-precision) 부동 소수점 숫자입니다. 값이 무한대이면 true, 그렇지 않으면 false를 반환합니다.
예제 1 – 일반적인 double 값
먼저 일반적인 double 값에 IsInfinity() 메서드를 적용한 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
double d = 5.5;
Console.WriteLine("Double Value = "+d);
Console.WriteLine("HashCode of Double Value = "+d.GetHashCode());
TypeCode type = d.GetTypeCode();
Console.WriteLine("TypeCode of Double Value = "+type);
Console.WriteLine("Positive Infinity? = "+Double.IsInfinity(d));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Double Value = 5.5 HashCode of Double Value = 1075183616 TypeCode of Double Value = Double Positive Infinity? = False
값 5.5는 유한한 수이므로 IsInfinity() 메서드가 False를 반환한 것을 확인할 수 있습니다.
예제 2 – 무한대 값
이번에는 0으로 나누어 무한대가 된 값에 메서드를 적용해 보겠습니다.
using System;
public class Demo {
public static void Main(){
double d = 1.0/0.0;
Console.WriteLine("Double Value = "+d);
Console.WriteLine("HashCode of Double Value = "+d.GetHashCode());
TypeCode type = d.GetTypeCode();
Console.WriteLine("TypeCode of Double Value = "+type);
Console.WriteLine("Positive Infinity? = "+Double.IsInfinity(d));
}
}출력 결과
실행 결과는 다음과 같습니다.
Double Value = ∞ HashCode of Double Value = 2146435072 TypeCode of Double Value = Double Positive Infinity? = True
1.0을 0.0으로 나눈 결과는 양의 무한대(∞)이므로 IsInfinity() 메서드가 True를 반환합니다.
함께 알아두면 좋은 관련 메서드
무한대 여부를 보다 세밀하게 판별하고 싶다면 다음 메서드들을 활용할 수 있습니다.
- Double.IsPositiveInfinity() – 값이 양의 무한대(+∞)인지 확인합니다.
- Double.IsNegativeInfinity() – 값이 음의 무한대(-∞)인지 확인합니다.
- Double.IsFinite() – 값이 유한한 수인지 확인합니다. (.NET Core 3.0 이상)
- Double.IsNaN() – 값이 NaN(Not a Number, 숫자 아님)인지 확인합니다.
이처럼 Double.IsInfinity() 메서드를 활용하면 부동 소수점 연산 결과가 무한대로 발산했는지 간편하게 검사하여, 프로그램의 안정성과 오류 처리 능력을 높일 수 있습니다.