float m;
int lftovr,x;
scanf("%.2f", &m);
lftovr = m%100;
x=m/100;
为什么显示错误:
||=== Build file: "no target" in "no project" (compiler: unknown) ===|
E:c programmenaeemchange.c||In function 'main':|
E:c programmenaeemchange.c|6|error: invalid operands to binary % (have 'float' and 'int')|
因为模除法"%"只适用于整数,而不适用于浮点。这是因为如果不是整数除法,就没有余数。
有一个约束,使得%
运算符的两个操作数都必须具有整数类型:
6.5.5乘法运算符
限制
2 nbsp nbsp 每个操作数应具有算术类型%
运算符的操作数应具有整数类型
C 2011在线草案
增加了重点。
如果您需要在float
值的除法上获得余数,请使用fmod()
:
float lftovr = fmod( m, 100.0f );