21xrx.com
2024-12-22 20:52:06 Sunday
登录
文章检索 我的文章 写文章
C++如何判断一个数无效?
2023-07-04 21:10:01 深夜i     --     --
C++ 判断 无效 错误码

在C++中,判断一个数无效通常有两个方面:一是是否为非数字类型,二是是否为特殊的无效数值。

一、非数字类型的判断

在C++中,非数字类型的判断可以使用isnan()函数或者isfinite()函数来实现。这两个函数都属于cmath库中的函数。

isnan()函数用于判断一个数是否为非数字类型(NaN),如果返回值为true,即代表该数为非数字类型。

例如:


double x = sqrt(-1.0); // x为非数字类型

if(isnan(x))

  cout << "x is NaN" << endl;

isfinite()函数用于判断一个数是否为有限数字类型,如果返回值为false,即代表该数为非数字类型。

例如:


double x = 1.0 / 0.0; // x为无穷大

if(!isfinite(x))

  cout << "x is not finite" << endl;

二、特殊的无效数值的判断

在C++中,特殊的无效数值可以通过比较数值与特殊常量来判断。

例如:


double x = sqrt(-1.0); // x为非数字类型

if(x == INFINITY || x == -INFINITY)

  cout << "x is infinite" << endl;

else if(x == NAN)

  cout << "x is NaN" << endl;

另外,C++也提供了一些常量来表示特殊的无效数值。

常量|含义

--|--

INFINITY|正无穷大

-HUGE_VAL|负无穷大

NAN|非数字类型

例如:


#include <iostream>

#include <cmath>

using namespace std;

int main() {

  double x = sqrt(-1.0); // x为非数字类型

  if(x == INFINITY || x == -INFINITY)

    cout << "x is infinite" << endl;

   else if(x == NAN)

    cout << "x is NaN" << endl;

  

  return 0;

}

输出:


x is NaN

综上所述,C++中判断一个数无效的方法有两个,一是通过isnan()函数或者isfinite()函数判断是否为非数字类型,二是通过比较数值与特殊常量来判断是否为特殊的无效数值。值得注意的是,在C++中存在着各种数值,对于不同的数值类型,判断的方法也有所不同。因此,在使用判断方法时,需要结合具体的数值类型进行考虑。

  
  

评论区

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