Re: [請益] 請教AutoCAD 1.255問題

看板Cad_Cae作者 (歐特力)時間8年前 (2016/05/24 22:40), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《comelin99 (jason)》之銘言: : 小弟最近發現一個問題 : 問題如下 : (< (* 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 : 到底是為什麼??? 我猜可能是浮點數的使用造成運算上有微小誤差 至於為什麼其他小數都可以正常顯示為0, 就1.255不行 我也不知道原因 也許你可以到Fortran版或其他程式語言版問看看 那裏有人有在接觸AutoLisp的撰寫 例如Fortran版的sjgau 關於浮點數可以參考下列連結: https://zh.wikipedia.org/wiki/IEEE_754 IEEE 754 http://www.h-schmidt.net/FloatConverter/IEEE754.html IEEE 754 Converter http://blog.dcview.com/article.php?a=VmhQNVY%2BCzo%3D 使用浮點數最最基本的觀念 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.179.57 ※ 文章網址: https://www.ptt.cc/bbs/Cad_Cae/M.1464100846.A.C84.html

06/07 12:54, , 1F
大大太厲害 感謝
06/07 12:54, 1F
文章代碼(AID): #1NH6Vko4 (Cad_Cae)
文章代碼(AID): #1NH6Vko4 (Cad_Cae)