반응형
std::isnan() 함수는 <cmath> 헤더 파일에 포함되어 있으며,
숫자인지 아닌지 확인해 주는 함수이다.
무한대 또는 숫자가 아닌 것을 출력하게 되면 inf(양의 무한대), -inf(음의 무한대), -nan(ind)(숫자가 아님)으로 출력이 된다.
#include <iostream>
int main() {
using namespace std;
double zero = 0.0;
double posinf = 5.0 / zero;
double neginf = -5.0 / zero;
double nan = zero / zero;
cout << posinf << '\n'; // inf: 양의 무한대
cout << neginf << '\n'; // -inf: 음의 무한대
cout << nan << '\n'; // -nan(ind): 결정할 수 없다. ind; indeterminate
return 0;
}
isnan() 함수를 이용하여 변수(값)이 숫자인지 아닌지 판별할 수 있다.
bool 타입의 리턴 값을 갖는 isnan() 함수는 0(숫자이다), 1(숫자가 아니다)로 출력된다.
#include <iostream>
#include <cmath> // std::isnan()
int main() {
using namespace std;
double zero = 0.0;
double posinf = 5.0 / zero;
double neginf = -5.0 / zero;
double nan = zero / zero;
cout << isnan(posinf) << '\n'; // 0: 숫자 이다
cout << isnan(neginf) << '\n'; // 0: 숫자 이다
cout << isnan(nan) << '\n'; // 1: 숫자가 아니다
return 0;
}
참고: Inflearn, 홍정모의 따라하며 배우는 C++, '2.5 부동소수점수 floating point numbers'
반응형
'C++' 카테고리의 다른 글
[C++] 불리언(bool) 자료형 (0) | 2021.10.28 |
---|---|
[C++] 무한대 판별: std::isinf() (0) | 2021.10.10 |
[C++] 정밀도 측정: std::setprecision() (0) | 2021.10.08 |
[C++] 자릿수 출력: std::setprecision() (0) | 2021.10.06 |
[C++] 변수 타입의 최대·최솟값: std::numeric_limits<> (0) | 2021.10.05 |