二进制表达式的无效操作数('double'和'double')

时间:2016-12-12 22:56:27

标签: c int double

这不是我的整个代码,但我不断收到此错误:二进制表达式的无效操作数

printf("How much change is owed?\n");
float change= GetFloat();
float roundf(float change);
change*=100;
int rem;

while (change>0)

{
    if(change>=0.25)
    rem=change % 0.25;      > error, saying that this is a double???? 
}
printf ("%d\n", rem);          I need the modulo , it is not working
return 0;

1 个答案:

答案 0 :(得分:2)

在C和C ++中,没有为浮点数定义运算符%。它仅针对整数类型定义。

因此,编译器会发出错误,因为在此表达式中

rem=change % 0.25;

两个操作数都是浮点数。此处0.25double类型的浮动文字,变量change被声明为类型为float

float change= GetFloat();

使用fmod中的remainder<math.h>个功能。