我的意思是:
double d1 =555;
double d2=55.343
我想知道 d1 是一个整数,而 d2 不是。有没有一种简单的方法可以在 c/c++ 中做到这一点?
原文由 vehomzzz 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的意思是:
double d1 =555;
double d2=55.343
我想知道 d1 是一个整数,而 d2 不是。有没有一种简单的方法可以在 c/c++ 中做到这一点?
原文由 vehomzzz 发布,翻译遵循 CC BY-SA 4.0 许可协议
modf 使用 std::nearbyint(num)
这就是为什么你应该使用 nearbyint
它返回一个不带小数的双精度并且可能更快。
#include <iostream>
#include <cmath>
int main() {
double number = 55.12;
if (!(number - std::nearbyint(number))) {
std::cout << "Is integer!";
} else {
std::cout << "Has decimal!";
}
return 0;
}
原文由 user9342572809 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
使用
std::modf
:不要转换为
int
!数字1.0e+300
你也知道是一个整数。编辑:正如 Pete Kirkham 指出的那样,标准不能保证将 0 作为第二个参数传递,需要使用虚拟变量,不幸的是,这使得代码不那么优雅。