为什么在C和C++中没有浮点/双精度的除法余数运算

Why is there no division remainder operation for floats/doubles in C and C++?

本文关键字:双精度 除法 运算 余数 C++ 为什么      更新时间:2023-10-16

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

这段代码在C和C++中不起作用,但在C#和Java:中起作用

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

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

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

C委员会解释了其立场,即为什么在基本原理文件:中没有浮动类型的余数运算符

(6.5.5乘法运算符)C89委员会拒绝将%运算符扩展到浮动类型,因为这种使用会复制fmod提供的功能(见§7.12.10.1)