欢迎!请查看关于页面以了解更多相关信息。
对于负数的解决方案(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。它包括 previously failing cases 的测试 cases,但我还更全面地与 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,但这似乎不太可能。