-1%4的正确答案是什么?

Bam*_*ban 0 php ruby math

我正在使用PHP进行项目,我希望-1 % 4能够返回3.但是,最终结果是-1在PHP中,我不知道为什么:

php > echo -1 % 4;
-1
Run Code Online (Sandbox Code Playgroud)

我检查了Ruby IRB,结果是3:

irb(main):001:0> puts -1 % 4
3
Run Code Online (Sandbox Code Playgroud)

Oli*_*rth 5

因为它是根据划分来定义的,所以:

a%b == a - (a/b)*b
Run Code Online (Sandbox Code Playgroud)

对于结果为负的部门,有两种可能的定义; 要么向零舍入,要么向负无穷大舍入.不同的编程语言使这种选择有所不同.

有关详细信息,请参阅http://en.wikipedia.org/wiki/Modulo_operator#Remainder_calculation_for_the_modulo_operation.