C++如何判断结果是否为nana或者inf
时间: 2024-09-06 21:05:47 浏览: 51
在C++中,判断一个浮点数是否为NaN(Not-a-Number,非数)或inf(无穷大)通常使用数学库函数或者类型特性。以下是判断浮点数结果是否为NaN或inf的方法:
1. 使用`std::isnan`函数:
`std::isnan`函数可以用来判断一个浮点数是否为NaN。如果参数是NaN,则函数返回`true`;否则返回`false`。
示例代码:
```cpp
#include <cmath> // 引入数学库
#include <iostream>
int main() {
float f = NAN; // NAN是一个预定义的常量,表示非数
if (std::isnan(f)) {
std::cout << "f是NaN" << std::endl;
}
return 0;
}
```
2. 使用`std::isinf`函数:
`std::isinf`函数用于判断一个浮点数是否为无穷大。如果是无穷大,返回`true`;否则返回`false`。
示例代码:
```cpp
#include <cmath> // 引入数学库
#include <iostream>
int main() {
float f = INFINITY; // INFINITY是一个预定义的常量,表示正无穷大
if (std::isinf(f)) {
std::cout << "f是无穷大" << std::endl;
}
return 0;
}
```
3. 对于整型变量,通常不会判断是否为NaN或inf,因为这些概念是针对浮点数的。整型变量直接参与算术运算时,不会产生NaN或inf的情况。
需要注意的是,`NAN`和`INFINITY`是C++标准库中定义的常量,分别用来表示非数和正无穷。对于不同的平台和编译器,这些常量可能有所不同,但`std::isnan`和`std::isinf`函数是标准库提供的功能。
阅读全文