回 帖 发 新 帖 刷新版面

主题:FLOAT数不能进行求余运算吗?

声明一下,我是新手中的新手,发提问贴自然没什么技术含量。望各位海涵!

比如我写这串代码:

float a=28.4,b=2.0;
int x;
x=a%b;
printf("%d",x);

程序运行后会提示ERROR,翻译过来大概是“在MAIN函数中对float数进行了非法运算”。

难道只有整型变量才能进行求余运算吗?

回复列表 (共2个回复)

沙发

可以用fmod函数或者fmodf函数。前者是用于double类型的求余,后者则是用于float类型。
x = fmodf(a, b);
用这句代替x = a % b,即可。

板凳

fmod、fmodf包含在math.h这个头文件中。

注意浮点数的求余,结果仍然是浮点数。
比如fmod(28.4, 2.0)结果为0.4,如果把这个值设置给int,则小数部分被去掉,于是就会变成零了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册