双精度值和模运算
在编程中,模运算符 (%) 计算一个数字除以另一个数字时的余数。但是,在 C 中,尝试对两个双精度浮点数(双精度)应用模运算会导致错误。
以下代码演示了此问题:
int main() { double x = 6.3; double y = 2; double z = x % y; }
编译后,此代码会生成错误:
error: invalid operands of types 'double' and 'double' to binary 'operator%'
出现此错误是因为模运算符仅针对整数操作数定义。对于双精度数,等效函数是 fmod()。要对双精度值使用模运算,请使用 fmod(),如下所示:
#include <cmath> int main() { double x = 6.3; double y = 2.0; double z = std::fmod(x, y); }
以上是为什么模数运算符不能与 C 中的双精度数一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!