欢迎!请参阅 关于页面 了解更多关于如何使用本功能的信息。
负数的解决方案(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` 作为单独的函数存在,我已经添加了一个补丁,在 `mod` 中将其内联。
评论者:mfikes
糟糕...补丁中某个东西杀死了我们在 Travis 上运行的较老的 JavaScriptCore 测试。我的唯一猜测是额外的模测试可能触发了 CLJS-910,但这似乎不太可能。