检查号码是整数

时间:2016-04-28 09:04:21

标签: c++

我正在尝试检查double类型的数字是否为整数。在here中,有几种方法。我已经选择了其中一个,但该方法在没有循环的情况下正常工作。一旦我把它放在一个循环中,它就可以使用一些数字并且无法检查其他数字。这是代码

#include <iostream>
#include <cmath>

bool IsInteger(double x) {
  return std::fmod(x, static_cast<decltype(x)>(1.0)) == 0.0;  // Test if fraction is 0.0.
}

int main(int argc, char* argv[])
{

    for (double i(0); i <= 4.0; i += 0.2 )
        if ( IsInteger(i) )
            std::cout << i << "   " << IsInteger(i) << std::endl;

    return 0;
}

上述代码适用于0.01.0,但无法验证2.03.0。代码在Windows 7中运行,编译器是visual studio。如果有关于此事的功能,我可以提升。

0 个答案:

没有答案