c++怎么判断一个数是不是整数
时间: 2024-10-13 19:07:57 浏览: 23
判断一个整数的位数(c++简单例子)
5星 · 资源好评率100%
在 C++ 中,判断一个数是否为整数可以有多种方式,取决于你手头的具体情况。这里有几个常见方法:
1. **C风格** (using `%` 操作符):
```cpp
bool is_integer(double num) {
return !std::fmod(num, 1.0); // 如果对num取余为零,则它可能是整数
}
```
2. **C++11 标准库** (using `std::is_integral`):
```cpp
#include <type_traits>
bool is_integer(double num) {
return std::is_integral<decltype(num)>::value;
}
```
这里使用了 `<type_traits>` 标准库来检查 `num` 的数据类型是否是整数。
3. **转换并检测异常**:
```cpp
bool is_integer(double num) try {
int i = static_cast<int>(num);
return true; // 如果转换成功,那么num就是整数
} catch (const std::invalid_argument&) {
return false;
}
```
尝试将 `double` 转换为 `int`,如果转换失败(例如 `std::overflow_error`),则返回 `false`。
阅读全文