ruby - 为什么模数运算在 ruby 中的工作方式与其他语言不同?
问题描述
在 Ruby 中,我得到:
-5 % 3 # => 1
而其他语言如 PHP、Javascript、C++ 和 Java 都产生结果-2
。我不明白这个概念。我希望有人能解释一下这个红宝石的计算方法。如果你能举一个例子来说明它是如何工作的,那就更好了。
解决方案
它在文档中: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
推荐阅读
- php - 使用 foreach 和 mysqli_fetch_all 时的正确语法是什么
- android - 什么是 Tools:itemCount 等效于 ExpandableListView?
- c - Rand() 在 C 中不是唯一的
- kubernetes - Grunt watch 在 Kubernetes 中使用 Sails.js 引发 sync:dev not found 错误
- python - 在 python pandas 数据框中分箱(不手动设置箱)
- python-3.x - 将 stdout 重定向到文件并在使用 python 子进程遇到 stderr 时终止
- c++ - 稀疏矩阵乘积的特征求解器
- git - 检查文件更改了多少次
- python - python中的USB条码扫描器:文本字段焦点
- android - Android 向摄像头提要添加实时叠加层