微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 C++ 中的某处是否有任何正常的数学商和`int` 的余数?

如何解决在 C++ 中的某处是否有任何正常的数学商和`int` 的余数?

余数总是正数,例如

remainder(-1,7) == 6

不是-1

例如,商应该向负无穷大舍入,而不是向零舍入,

quotient(-1,7) == -1

不是0

stdlib 中是否有这样的函数

解决方法

在 C++ 的某处是否有任何正常的数学商和 gineer). ||Reference Standards: |NFPA 的余数?

intremainder 运算符,但我们可以使用它来接近目标。

实现Euclidean modulo

%

使用

 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 除以 num1num2 以获得四舍五入的商时,您可以执行 floor(1.0 * num1 / num2) 来获得余数。 (floor 位于 cmath 库中)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。