Я пытаюсь узнать Clojure и попыталась определением этой простой функции:точность плавающей запятой в Clojure
user=> (defn triple [arg] (* 3 arg))
#'user/triple
user=> (triple 1)
3
user=> (triple 1.01)
3.0300000000000002
Может кто-нибудь объяснить, почему существует 2 в конце результата здесь?
Вы можете прочитать некоторые анализы по проблеме здесь: http://stackoverflow.com/questions/9136860/how-to-check-dependencies-of-floats/9136907#9136907 – Gangnus
Обратите внимание, что это не специфический для clojure но один из того, как компьютеры обрабатывают арифметику в целом. –