欢迎!请参阅关于页面了解一些关于该功能的信息。
负数的解决方案( 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 吗?
是的,两小时前。
评论者:anmonteiro
小节:不应该将double-mod函数标记为私有吗?
double-mod
我认为没有必要将double-mod作为一个独立的函数存在,我已经添加了一个补丁,将其内联到mod中。
mod
评论者:mfikes
惨了...补丁中某些内容破坏了我们使用Travis运行测试的较旧JavaScriptCore。我唯一想到的可能的原因是额外的mod测试触发了CLJS-910,但这似乎不太可能。