(def a 1.0)
(def b (+ (* 0.3 3) 0.1))
;; b is 0.9999999999999999
;; wrong way to compare
(def equal1 (== a b))
;; equal1 is false
;; correct way to compare: with a tolerance
(def delta 1e-9)
(def equal2 (< (abs (- a b)) delta))
;; equal2 is true
;; = wants the same type as well, == compares numbers across types
(println "(= 1.0 1) is" (= 1.0 1))
(println "(== 1.0 1) is" (== 1.0 1))
(println "b is" b)
(println "equal1 is" equal1)
(println "equal2 is" equal2)