欢迎!请参阅 关于 页面获取更多关于此功能的信息。
对于负数的解决方案(https://dev.clojure.org/jira/browse/CLJS-417)会对浮点数产生恼人的行为
(mod 2.1 3) ; => 2.0999999999999996
在这里,Clojure 和标准 JavaScript 的模运算都返回预期的 2.1。
两种可能的解决方案
评论者:dnolen
欢迎补丁。
评论者:zto
补丁将 cljs.core/mod 重命名为 double-mod 并重新定义 mod,当两个参数符号相同时,直接调用 js-mod。它包括先前失败的测试用例,但我也对 Clojure 实现进行了更彻底的测试:[查看测试用例](https://gist.github.com/aw7/a32bd69923c65bddc23fd63ee062833c)
非常感谢,您是否已提交您的 Clojure CA?
是的,2小时前。
评论者:anmonteiro
小插曲:难道不应该将 double-mod 函数标记为私有吗?
double-mod
我想没有必要让 double-mod 作为独立函数存在,我已经添加了一个补丁,在其中将其内联到 mod 中。
mod
评论者:mfikes
槽点... 补丁中的某个东西杀死了我们在 Travis 上运行的旧版 JavaScriptCore。我唯一的猜测是额外的 mod 测试可能触发了 CLJS-910,但这似乎不太可能。