急!!关于c语言中判断一个数是否是100的整数,在线等。

我编写一个atm的程序,因此要准确到小数点后两位,但是我用float型的时候
(X%100)==0
来判断它是否为100的整数倍,可是它显示
error C2296: '%' : illegal, left operand has type 'float '
然后求解决方法,我必须显示后两位,不能用int

方法1:建立一个由2的整数幂组成的数组,再逐一比较。
方法2:构造循环,使其从1开始不断乘上2,同时与输入数进行比较,若小于则继续,若大于则不符合,若等于则该数为2的整数幂。
方法3:对一个数进行从2开始到其根号数下的开方,若大于二则继续,若小于二则该数不是,若等于2则该数是2的整数幂。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-16
float x,temp;
temp=(int)x;
if(temp!=x)return(0);//如果小数点后不为零则返回不能被100整出
if((int)x%100==0)return(1);//否则是.00的情况先暂时换成整数来比较
return(0);本回答被提问者和网友采纳
第2个回答  2012-05-26
float是不能使用%的,必须转化为整型
要么x设为int型 要么加上强制类型转换((int)x%100)==0追问

那么一旦x被强制转换类型之后,x就一直是整型了吗,可是我必须保证它是float型的话,我该怎么判断它是不是100的整数倍呢

第3个回答  2012-05-26
float x = 100.11;
int ix = (int)x; //ix = 100
int r = ix % 100; //r=0
if (r == 0)
//100的整数倍
return x;追问

我回去试验了一下,不行。不过非常感谢你。

相似回答