检查数字是否是C ++中的整数

时间:2014-04-29 20:58:34

标签: c++ integer

我正在寻找一种检查某个变量是否包含整数的方法。我的程序询问用户一组变量的值,然后它计算使另一个变量变为整数所需的变量k。用于计算k的代码本质上是for循环,其将k从零递增直到其达到使得整数为e的值。但我无法弄清楚如何检查e是一个整数。这是我想到的代码:

for (int k = 0; k!=wk; k++) 
 { 
  e = (1+k*f_n)/d;
 if()
 }

变量wk就在那里,当e是整数时,wk等于k,所以循环结束。

2 个答案:

答案 0 :(得分:4)

您不想检查e是否为整数。您想检查1 + k*f_nd的倍数。使用模运算符。

if (((1 + k*f_n) % d) == 0)

答案 1 :(得分:0)

假设e是浮点类型,

int u = (int) e;
if (e > (float)u || e < (float)u)
  continue;
break;

此解决方案在其他模块化算法的范围内将受到舍入误差的影响。请考虑使用模数运算符。