可能重复:
为什么模除法 (%
) 仅适用于整数?
此代码不适用于 C 和 C++,但适用于 C# 和 Java:
float x = 3.4f % 1.1f;
double x = 3.4 % 1.1;
此外,除法余数是在 Python 中为实数定义的。
没有为 C 和 C++ 中的浮点数和双精度数定义此操作的原因是什么?
C 委员会解释了为什么在Rationale文档中没有用于浮动类型的余数运算符的立场:
(6.5.5 乘法运算符) C89 委员会拒绝扩展 % 运算符以处理浮点类型,因为这种用法会重复 fmod 提供的功能(参见 §7.12.10.1)。