228378553 发表于 2024-9-3 12:37:55

为何变量赋值了,再回去判断却不对?

命令: !size1
50.0
命令: (setq Dn size1)
50.0
命令: (= Dn 50.0)
nil


为何最后判断返回nil?

飞雪神光 发表于 2024-9-3 12:45:44

本帖最后由 飞雪神光 于 2024-9-3 12:48 编辑

命令行的变量值显示可以参考 可能实际并不是那个数

命令: (setq size1 50.00001) 50.0
命令: !size1 50.0
命令: (setq Dn size1) 50.0
命令: (= Dn 50.0) nil

228378553 发表于 2024-9-3 13:19:25

飞雪神光 发表于 2024-9-3 12:45
命令行的变量值显示可以参考 可能实际并不是那个数

命令: (setq size1 50.00001) 50.0


Yes, floating point precision. I ignored it.

烟盒迷唇 发表于 2024-9-3 14:28:18

用equal比较啊

kzd2004 发表于 2024-9-3 15:34:29

Dn改为dn就有了。
命令: (setq Dn size1) 50.0
命令: !dn 50.0

d1742647821 发表于 2024-9-4 16:16:06

经典的浮点数误差,你可以尝试判断 0.1+0.2 是否等于 0.3,然后发现居然是nil,百度浮点数误差就可以了解了!
页: [1]
查看完整版本: 为何变量赋值了,再回去判断却不对?