#include <iostream>
#include <cmath>
#include <cfloat>
int main()
{
std::cout << std::boolalpha
<< "isinf(NaN) = " << std::isinf(NAN) << '\n'
<< "isinf(Inf) = " << std::isinf(INFINITY) << '\n'
<< "isinf(0.0) = " << std::isinf(0.0) << '\n'
<< "isinf(exp(800)) = " << std::isinf(std::exp(800)) << '\n'
<< "isinf(DBL_MIN/2.0) = " << std::isinf(DBL_MIN/2.0) << '\n';
}
Output:
isinf(NaN) = false
isinf(Inf) = true
isinf(0.0) = false
isinf(exp(800)) = true
isinf(DBL_MIN/2.0) = false
判断inf
如果是inf则返回true, 其他情况(包括nan)返回false
bool isinf( float arg );
bool isinf( double arg );
bool isinf( long double arg );
bool isinf( Integral arg );
如果是有限数返回true,其他情况(包括nan)返回false
bool isfinite( float arg );
bool isfinite( double arg );
bool isfinite( long double arg );
bool isfinite( Integral arg );
判断nan
bool isnan( float arg );
bool isnan( double arg );
bool isnan( long double arg );
bool isnan( Integral arg );
参考链接:http://en.cppreference.com/w/cpp/numeric/math/isinf