为什么CoffeeScript使用%%代替模数而不是标准的javascript运算符%

Mat*_*ias 19 javascript operators modulo coffeescript

关于运算符CoffeeScript文档中,它表示您可以使用%%真正的数学模,但没有解释为什么这与%JavaScript中的"模运算符"不同.

更进一步说它a %% b在CoffeeScript中相当于(a % b + b) % b用JavaScript 编写,但是对于大多数简单的情况,这似乎产生了相同的结果.

Mat*_*ias 28

我确实在另一个StackOverflow问题中找到答案并回答Javascript模数不行为,我想分享给那些喜欢我的人只寻找"CoffeeScript"相关的解释,因此很难找到正确的答案.

使用a %% b哪个编译的原因(a % b + b) % b是对于负数,例如-5 % 3,JavaScript将产生负数,-5 % 3 = -2而正确的数学答案应该是-5 % 3 = 1.

接受的答案是指一篇关于JavaScript模数错误的文章,它解释得很好.