[請益] 請教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