Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 double(또는 float)이 NaN인지 확인

<시간/>

C++에서 부동 소수점 또는 이중 숫자가 NaN(숫자가 아님)인지 확인하려면 isnan() 함수를 사용할 수 있습니다. isnan() 함수는 cmath 라이브러리에 있습니다. 이 기능은 C++ 버전 11에 도입되었습니다. 따라서 C++11 다음부터는 이 기능을 사용할 수 있습니다.

예시

#include <cmath>
#include <iostream>
using namespace std;
main() {
   if(isnan(sqrt(30))) { //square root of 30 is a floating point number
      cout << "Square root of 30 is not a number" <<endl;
   } else {
      cout << "Square root of 30 is a number" <<endl;
   }
   if(isnan(sqrt(-30))) { //square root of -30 is an imaginary number
      cout << "Square root of -30 is not a number" <<endl;
   } else {
      cout << "Square root of -30 is a number" <<endl;
   }
}

출력

Square root of 30 is a number
Square root of -30 is not a number