5

可能重复:
为什么模除法 ( %) 仅适用于整数?

此代码不适用于 C 和 C++,但适用于 C# 和 Java:

float x = 3.4f % 1.1f;
double x = 3.4 % 1.1;

此外,除法余数是在 Python 中为实数定义的。

没有为 C 和 C++ 中的浮点数和双精度数定义此操作的原因是什么?

4

1 回答 1

20

C 委员会解释了为什么在Rationale文档中没有用于浮动类型的余数运算符的立场:

(6.5.5 乘法运算符) C89 委员会拒绝扩展 % 运算符以处理浮点类型,因为这种用法会重复 fmod 提供的功能(参见 §7.12.10.1)。

于 2012-07-14T20:27:45.103 回答