当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ isnan()用法及代码示例


C++ isnan() 函数

isnan() 函数是 cmath 头文件的库函数,用于检查给定值是否为 NaN (Not-A-Number)。它接受一个值 (floatdouble或者long double),如果给定值为 NaN,则返回 1; 0,否则。

isnan() 函数的语法:

在 C99 中,它已被实现为一个宏,

    macro isnan(x)

在 C++11 中,它已经被实现为一个函数,

    bool isnan (float x);
    bool isnan (double x);
    bool isnan (long double x);

参数:

  • x– 表示要检查为 NaN 的值。

返回值:

这个函数的返回类型是bool,如果x是 NaN; 0,否则。

例:

    Input:
    float x = 0.0f/0.0f;
    
    Function call:
    isnan(x);    
    
    Output:
    1

    Input:
    float x = sqrt(-1.0f);
    
    Function call:
    isnan(x);    
    
    Output:
    1

    Input:
    float x = 10.0f;
    
    Function call:
    isnan(x);    
    
    Output:
    0

C++代码演示isnan()函数的例子

// C++ code to demonstrate the example of
// isnan() function

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    cout << "isnan(sqrt(-10.0f)):" << isnan(sqrt(-10.0f)) << endl;
    cout << "isnan(0.0f/0.0f):" << isnan(0.0f / 0.0f) << endl;
    cout << "isnan(0.0f/1.0f):" << isnan(0.0f / 1.0f) << endl;
    cout << "isnan(1.0f/0.0f):" << isnan(1.0f / 0.0f) << endl;

    float x = sqrt(-1.0f);

    // checking using the condition
    if (isnan(x)) {
        cout << x << " is a NaN." << endl;
    }
    else {
        cout << x << " is not a NaN." << endl;
    }

    x = sqrt(2);

    if (isnan(x)) {
        cout << x << " is a NaN." << endl;
    }
    else {
        cout << x << " is not a NaN." << endl;
    }

    return 0;
}

输出

isnan(sqrt(-10.0f)):1
isnan(0.0f/0.0f):1
isnan(0.0f/1.0f):0
isnan(1.0f/0.0f):0
-nan is a NaN.
1.41421 is not a NaN.

参考:C++ isnan() 函数



相关用法


注:本文由纯净天空筛选整理自 isnan() Function with Example in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。