判断这个数是否是整数的函数c++
时间: 2024-10-15 08:19:23 浏览: 18
在C++中,你可以使用内置的数据类型和条件语句来判断一个数是否是整数。以下是一个简单的函数示例:
```cpp
#include <iostream>
#include <cmath> // 引入math库以便使用isinf()函数
bool isInteger(double num) {
// 使用isinf()函数检查数值是否接近无穷大,这是判断非整数的一种常见方式
if (std::isnan(num) || std::isinf(num)) {
return false; // 非正数、正无穷或负无穷都不是整数
} else if (num == int(num)) { // 如果小数部分为0,则是整数
return true;
} else {
return false;
}
}
int main() {
double testNums[] = {42.0, 3.14, -999, 0.0, std::numeric_limits<double>::infinity(), -std::numeric_limits<double>::infinity()};
for (double num : testNums) {
std::cout << "Number " << num << " is an integer? " << (isInteger(num) ? "Yes" : "No") << '\n';
}
return 0;
}
```
这个`isInteger`函数首先排除了非数字的情况(如NaN),然后检查如果减去其整数部分结果为零,那么就说明它是整数。对于非常大的数值,可能会有精度问题,因此我们借助`std::isinf()`函数。
阅读全文