欢迎!请参阅 关于 页面以了解更多有关该功能的信息。
负数的解决方案 (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,并在两个参数都有相同符号时直接调用 js-mod 重新定义 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,但这似乎不太可能。