[请益] 请教AutoCAD 1.255问题

楼主: comelin99 (jason)   2016-05-24 14:48:17
小弟最近发现一个问题
问题如下
(< (* 100 1.255 ) 125.5) → T ????
(= (* 100 1.355 ) 135.5) → T ????
1.255乘100小于125.5
1.355甚至其他数都不会有这个问题
验算后发现以下问题
(setq a (+ (* 100 2.255) 0.50)) → 226.0
(setq b (- 226 a)) → 0.0
感觉没什么问题
但以下却不一样
(setq a (+ (* 100 1.255 ) 0.50)) → 126.0
(setq b (- 126 a)) → 1.42109e-014
到底是为什么???
作者: gamer   2016-05-24 23:56:00
浮点运算精度问题吧,随便找本计算机概论,里面都会写
楼主: comelin99 (jason)   2016-05-25 01:28:00
可是我今天要写程式 遇到1.255数值不就毁了.. 还是有什么解决方法
作者: enightcat (模具设计猫)   2016-05-26 23:18:00
不会毁了.就是精度的问题. 判断相等的话.有另外的函数可用我都用(equal a b 精度值) 比如.(equal a b 0.01) 去判别..

Links booklink

Contact Us: admin [ a t ] ucptt.com