首页 > 解决方案 > 为什么模数运算在 ruby​​ 中的工作方式与其他语言不同?

问题描述

在 Ruby 中,我得到:

-5 % 3 # => 1

而其他语言如 PHP、Javascript、C++ 和 Java 都产生结果-2。我不明白这个概念。我希望有人能解释一下这个红宝石的计算方法。如果你能举一个例子来说明它是如何工作的,那就更好了。

标签: ruby

解决方案


它在文档中:https ://ruby-doc.org/core-2.5.0/Numeric.html#method-i-divmod

如果q, r = x.divmod(y),那么

q = floor(x/y)
x = q*y + r

商向负无穷大四舍五入

-3 也是如此q(-5 / 2 并向下取整,按照通常的整数除法规则)。和r = x - q * y = -5 - -3 * 2 = 1


推荐阅读