C语言:float%float为什么表达式必须具有整数类型

时间:2018-02-07 18:01:37

标签: c

我尝试执行此操作,因此请查看此操作是仅采用完整部分(20%4)还是全部(20.4%4.4)

float x = 20.4;
float y = 4.0;
float z;
z = x%y;

得到了这个编译器error

  

表达式必须具有整数类型

3 个答案:

答案 0 :(得分:3)

您只能使用%来获取整数除法的余数。

要获得浮点除法的余数,请改用fmod()函数。

答案 1 :(得分:2)

您可以使用modff来解决问题。

float res = modff(x,&y)

整数部分存储在y中,并返回小数部分。 %无法与非整数类型一起使用。

答案 2 :(得分:0)

无法模数浮点数。解决这个问题。

float x = 20.4
int xint = (int)(x);
int y = 4;
float z = x % y + (x-xint)