检查变量在C+中是整数还是浮点+; 如何检查C++中的初始化变量是否具有整数值或浮点值?< /P>
示例代码块如下所示:检查变量在C+中是整数还是浮点+; 如何检查C++中的初始化变量是否具有整数值或浮点值?< /P>,c++,C++,示例代码块如下所示: int main() { double number = 9.99; if (/*Checks whether the value of the 'number' is an integral*/) cout << "The 'number' has an integral value"; else cout << "It's not an integral value" // This
int main()
{
double number = 9.99;
if (/*Checks whether the value of the 'number' is an integral*/)
cout << "The 'number' has an integral value";
else
cout << "It's not an integral value" // This condition will true if 'number' has a floating point number
return 0;
}
intmain()
{
双倍数字=9.99;
if(/*检查“number”的值是否为整数*/)
这个怎么样
#include <typeinfo>
// …
int a = 1;
std::cout << typeid(a).name() << '\n';
#包括
// …
INTA=1;
std::cout您正在寻找的是fmod(number,1.0)
。如果且仅当这正好是0.0(这里没有ε)“<代码>编号<代码>是一个整数值。你认为7是整数还是不是?使用STD::MODF可能的复制品,什么是整数值?你是指整数值吗?所以如果我错了代码,请纠正我,你可以使用一些简单的东西,例如你可以做<代码>数字=STATICE-CAST(数字)。
。但是,这有一些缺点,比如7.0
被接受为整数。此外,由于浮点值的舍入问题,一个值可能非常接近整数,但不完全相同。我很确定这一点是在评估浮点变量的值是否为“整数”。这比std::is_integral
更好吗理解问题是如何检查变量是否为整数(换句话说,它是什么类型的变量)所以我用这个method@SebastianKaczmarek:是的,你的答案很清楚,但是std::is_integral
更容易携带。它直接告诉你是真是假;你不必猜测字符串。(加上编译时间)@MSalters,除非您必须提供类型。很好的解决方案,忘记了这一点。我不确定您引入的警告在这里也不会失败。