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

C++ isfinite() 함수 완벽 가이드: 문법, 반환값 및 예제

이 글에서는 C++의 isfinite() 함수가 어떻게 동작하는지, 그리고 그 문법과 다양한 예제를 자세히 살펴보겠습니다.

isfinite()는 C++ 표준 라이브러리의 <cmath> 헤더 파일에 포함된 내장 함수입니다. 이 함수는 주어진 숫자가 유한수(finite number)인지 검사하여 그 결과를 반환합니다. 여기서 유한수란 무한대(infinity)도 아니고 NaN(Not a Number)도 아닌 모든 부동소수점 수를 의미합니다.

문법

bool isfinite(float n);

또는

bool isfinite(double n);

또는

bool isfinite(long double n);

이 함수는 단 하나의 매개변수 n만을 받으며, n은 유한 여부를 검사할 대상 값입니다.

반환값

이 함수는 불리언(Boolean) 값을 반환합니다.

  • 숫자가 유한수인 경우: 1(true)
  • 숫자가 유한수가 아닌 경우(무한대 또는 NaN): 0(false)

예제 1

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    float a = 10.0, b = 0.1, c = 0.0;
    isfinite(a/b)?cout<<"\nThe result of a/b is finite":cout<<"\nThe result of a/b is not finite";
    isfinite(a/c)?cout<<"\nThe result of a/c is finite":cout<<"\nThe result of a/c is not finite";
}

출력 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

The result of a/b is finite
The result of a/c is not finite

a/b는 정상적인 유한수이므로 true를 반환하지만, a/c는 0으로 나누어 무한대(inf)가 되기 때문에 false를 반환합니다.

예제 2

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    float c = 0.0, d = -1.0;
    // 숫자가 무한대인지 유한수인지 검사
    isfinite(c)?cout<<"\nFinite number":cout<<"\nNot a finite number";
    cout<<isfinite(sqrt(d)); // 결과는 -NAN
}

출력 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Finite number
0

참고: 음수인 -1.0의 제곱근은 실수 범위에서 정의되지 않으므로 NaN을 반환합니다. 따라서 isfinite()는 0(false)을 반환하게 됩니다.