为什么ruby modulo与java/other lang不同?

Kar*_*yan 5 ruby java modulo

我基本上来自java背景,并努力理解Ruby中的模运算.

(5 % 3)     
(-5 % 3)    
(5 % -3)    
(-5 % -3) 
Run Code Online (Sandbox Code Playgroud)

上面的Java操作产生了2 -2 2 -2

但在Ruby中,相同的表达式产生2 1 -1 -2.

逻辑上红宝石如何擅长这个?如何在Ruby中实现模块操作?如果将相同的操作定义为Web服务,则两个服务如何匹配逻辑.

dev*_*ull 3

在Java中,模运算的结果与被除数具有相同的符号。

在 Ruby 中,它与除数具有相同的符号。 remainder()在 Ruby 中与股息具有相同的符号。

您可能还想参考模运算