首页 > 解决方案 > 使用模数时如何解决 C++ 输出负数?

问题描述

在我编写的代码中,我使用了以下两个函数来计算显示负数的模数。

fmod(-10,11)
(-10, 11)

虽然正确答案是 1。它总是在 c++ 中显示答案 -10。我该如何解决?

标签: c++mod

解决方案


来自 cppreference.com:

double fmod (double numer, double denom);
此函数计算的除法运算的浮点余数x/y正是值x - n*y,其中nx/y小数部分被截断。
返回的值具有相同的符号,x并且小于y大小。

在您的情况下-10 - (-10)/11 * 11 = -10 - 0 * 11 = -10,它是正确的,对于fmod. 如果您需要另一个答案,您应该实现自己的版本,正如modulo负数以不同方式定义的那样。


推荐阅读