Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查变量在C+中是整数还是浮点+; 如何检查C++中的初始化变量是否具有整数值或浮点值?< /P>_C++ - Fatal编程技术网

检查变量在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,除非您必须提供类型。很好的解决方案,忘记了这一点。我不确定您引入的警告在这里也不会失败。