Почему работа с модулем отличается в ruby ​​от других языков? - PullRequest
0 голосов
/ 19 ноября 2018

В Ruby я получаю:

-5 % 3 # => 1

тогда как другие языки, такие как PHP, Javascript, C ++ и Java, все дают результат -2. Я не понимаю эту концепцию. Я надеюсь, что кто-то может объяснить метод расчета этого рубина. Было бы лучше, если бы вы могли использовать пример того, как это работает.

1 Ответ

0 голосов
/ 19 ноября 2018

Это в документации: 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

Коэффициент округляется до отрицательной бесконечности

То есть q равно -3 (-5 / 2 и округляется в соответствии с обычными правилами целочисленного деления). А r = x - q * y = -5 - -3 * 2 = 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...