为何变量赋值了,再回去判断却不对?
命令: !size150.0
命令: (setq Dn size1)
50.0
命令: (= Dn 50.0)
nil
为何最后判断返回nil?
本帖最后由 飞雪神光 于 2024-9-3 12:48 编辑
命令行的变量值显示可以参考 可能实际并不是那个数
命令: (setq size1 50.00001) 50.0
命令: !size1 50.0
命令: (setq Dn size1) 50.0
命令: (= Dn 50.0) nil
飞雪神光 发表于 2024-9-3 12:45
命令行的变量值显示可以参考 可能实际并不是那个数
命令: (setq size1 50.00001) 50.0
Yes, floating point precision. I ignored it. 用equal比较啊 Dn改为dn就有了。
命令: (setq Dn size1) 50.0
命令: !dn 50.0
经典的浮点数误差,你可以尝试判断 0.1+0.2 是否等于 0.3,然后发现居然是nil,百度浮点数误差就可以了解了!
页:
[1]