21xrx.com
2024-09-20 00:14:55 Friday
登录
文章检索 我的文章 写文章
C++ 如何判断 NaN。
2023-07-06 19:04:08 深夜i     --     --
C++ 判断 NaN

在C++中,NaN代表不是一个数字,它是一种特殊的浮点数值,表示无效或未定义的数值。因此,在编写C++程序时,经常需要判断一个值是否为NaN。那么,C++如何判断NaN呢?

C++中的标准库cmath提供了一些函数来判断浮点数值是否为NaN。其中最常用的函数是std::isnan(),它用于判断一个浮点数是否为NaN。该函数的函数原型如下:

bool isnan(double x);

该函数接受一个double类型的参数x,如果该参数的值为NaN,则返回true,否则返回false。

以下是一个示例程序,展示了如何使用std::isnan()函数判断一个浮点数是否为NaN:


#include <iostream>

#include <cmath>

int main()

{

  double num = std::sqrt(-1); // 获取一个NaN

  if (std::isnan(num))

  

    std::cout << "num is NaN." << std::endl;

  

  else

  

    std::cout << "num is not NaN." << std::endl;

  

  return 0;

}

代码中,使用std::sqrt()函数计算-1的平方根,由于-1的平方根是一个NaN,因此将返回一个NaN。接着,使用std::isnan()函数判断该值是否为NaN,如果是,则输出“num is NaN.”,否则输出“num is not NaN.”。

除了std::isnan()函数外,还有另外两个函数也可以用于判断浮点数是否为NaN。它们分别是std::isnanf()和std::isnanl(),它们用于判断float类型和long double类型的浮点数是否为NaN。

综上所述,C++通过cmath库提供了方便的函数来判断一个浮点数是否为NaN。只需要在需要的地方调用相应的函数,便可以轻松地判断浮点数是否为NaN。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复