Clojure 奇怪的添加行为

Clojure weird adding behavior

我是 clojure 的新手,正在学习基本的内置函数。我在对值求和时发现了一些奇怪的错误。

用户=> (+ 0.99 10 10) 20.990000000000002

用户=> (+ 0.99 30 10) 40.989999999999995

然而,(+ 0.99 10 30) 给出了预期的结果,40.99。您认为是什么原因造成的?我只是在 Mac 上使用终端 window 和 clojure repl 的 clj 命令。谢谢。

这似乎与 Reddit 上发布的问题(并在那里回答)相同:https://www.reddit.com/r/Clojure/comments/nia8lo/weird_partial_error/