问题描述
余数总是正数,例如
remainder(-1,7) == 6
不是-1
例如,商应该向负无穷大舍入,而不是向零舍入,
quotient(-1,7) == -1
不是0
。
stdlib 中是否有这样的函数?
解决方法
在 C++ 的某处是否有任何正常的数学商和 gineer). ||Reference Standards: |NFPA
的余数?
int
是 remainder 运算符,但我们可以使用它来接近目标。
%
使用
7 modulo 3 --> 1
7 modulo -3 --> 1
-7 modulo 3 --> 2
-7 modulo -3 --> 2
另请参阅涵盖各种陷阱的 Fastest way to get a positive modulo in C/C++。
,当您将 (num1 % num2 + num2) % num2
除以 num1
和 num2
以获得四舍五入的商时,您可以执行 floor(1.0 * num1 / num2)
来获得余数。 (floor
位于 cmath
库中)