我正在努力理解为什么
(= 1 1.0)
Run Code Online (Sandbox Code Playgroud)
计算结果为false,而
(== 1 1.0)
Run Code Online (Sandbox Code Playgroud)
评估为true.根据文档,==似乎只是在研究数字,但除此之外似乎没有太大的区别.那么,我错过了什么?
noi*_*ith 21
==检查数学等价.=数字检查等效的方式与适用的大小无关,但对表示严格:
user> (= (float 1.0) (double 1.0))
true
user> (= (int 1) (byte 1))
true
user> (= (int 1) (double 1))
false
user> (= 0.5 (/ 1 2))
false
user> (== 0.5 (/ 1 2))
true
Run Code Online (Sandbox Code Playgroud)
假设,推理是浮点的表示可能失去精度,不应被视为等价于整数或精确表示.