我正在寻找一种检查某个变量是否包含整数的方法。我的程序询问用户一组变量的值,然后它计算使另一个变量变为整数所需的变量k。用于计算k的代码本质上是for循环,其将k从零递增直到其达到使得整数为e的值。但我无法弄清楚如何检查e是一个整数。这是我想到的代码:
for (int k = 0; k!=wk; k++)
{
e = (1+k*f_n)/d;
if()
}
变量wk就在那里,当e是整数时,wk等于k,所以循环结束。
答案 0 :(得分:4)
您不想检查e
是否为整数。您想检查1 + k*f_n
是d
的倍数。使用模运算符。
if (((1 + k*f_n) % d) == 0)
答案 1 :(得分:0)
假设e
是浮点类型,
int u = (int) e;
if (e > (float)u || e < (float)u)
continue;
break;
此解决方案在其他模块化算法的范围内将受到舍入误差的影响。请考虑使用模数运算符。