这不是我的整个代码,但我不断收到此错误:二进制表达式的无效操作数。
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;
答案 0 :(得分:2)
在C和C ++中,没有为浮点数定义运算符%
。它仅针对整数类型定义。
因此,编译器会发出错误,因为在此表达式中
rem=change % 0.25;
两个操作数都是浮点数。此处0.25
是double
类型的浮动文字,变量change
被声明为类型为float
。
float change= GetFloat();
使用fmod
中的remainder
或<math.h>
个功能。