php - ruby 中的模数运算符与 php 相比

标签 php ruby

我正在寻找关于 Ruby 的模操作数如何工作以及为什么在 Ruby 中的简单解释

puts  4 % 3   # 1
puts -4 % 3   # 2 <--why?
puts -4 % -3  # -1 

但是在 PHP 中:

<?php

echo  4 % 3;  #  1
echo -4 % 3;  # -1
echo -4 % -3; # -1

在我看来 -4 % 3 实际上是 8 % 3(8 是 4 和 -4 之间的差值)。

最佳答案

根据您的定义,它们都可以被认为是正确的。如果 a % n == r,那么它应该满足:

a == q*n + r

其中 q == a/n

r 是正数还是负数由q 的值决定。所以在你的例子中,要么:

-4 == -1*3 + (-1)   // PHP
-4 == -2*3 + 2      // Ruby

换句话说,%的定义依赖于/的定义。

另请参阅此处的表格:http://en.wikipedia.org/wiki/Modulus_operator#Remainder_calculation_for_the_modulo_operation .您会发现这在不同的编程语言之间有很大差异。

关于php - ruby 中的模数运算符与 php 相比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7395205/

相关文章:

php - 为什么 CURLOPT_RESOLVE 能如此大幅度地加快我的请求速度?

php - 有没有办法让mysql在某些时候自动在phpmyadmin中更新记录

ruby-on-rails - Rails 复选框

ruby - 如何使 Ruby 脚本每秒运行一次?

ruby - 如何在 Jenkins 服务器 (Linux) 上运行 Cucumber headless 测试

php - SQL - 如果存在 - 选择 A - 否则 - 选择 B

java - 从php中获取json数据并将其存储在java中的数组中

php - 如何在 PHP 中压缩整个文件夹,甚至是空文件夹?

ruby-on-rails - Rails - 查找用户的所有项目

ruby - 为什么 reduce 的参数按它们的顺序排列?