javascript - 为什么 CoffeeScript 使用 %% 代替标准的 javascript 运算符 % 来表示模数

标签 javascript coffeescript operators modulo

CoffeeScript documentation on operators它说你可以使用 %% 来实现真正的数学模数,但没有解释为什么这与 JavaScript 中的“模运算符”% 不同。

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

最佳答案

我确实在另一个 StackOverflow 问答中找到了答案 JavaScript % (modulo) gives a negative result for negative numbersI wanted to share it对于像我这样只寻找“CoffeeScript”相关解释的人来说,很难找到正确的答案。

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

接受的答案是指 an article on the JavaScript modulo bug这很好地解释了这一点。

关于javascript - 为什么 CoffeeScript 使用 %% 代替标准的 javascript 运算符 % 来表示模数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23126440/

相关文章:

javascript - 使用 gulp 将 scss 转换为 css。 [问题]

javascript - 使用 AJAX 进行引文查找(使用 OAI-PMH?)

node.js - Connect-Flash 和 Express 给了我多条消息但没有输入

java - 将列表中每个对象的值增加 11

javascript - 正确的 JavaScript 运算符优先级表是什么?

javascript - jQuery 获取光标所在的文本 block

javascript - 如何滚动以自动滚动到可编辑div onload的底部

javascript - Node JS Inspect 显示属性具有值,但检查属性返回未定义

javascript - 如何在迭代中获取 json 名称值而不是索引或 id?

php - 解析错误: syntax error, unexpected '<<' (T_SL) in C:\xampp\htdocs\kensift\index.php on line 167 [duplicate]