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

作者: ottoli (世界的盡頭)   2016-05-24 22:40:43
※ 引述《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
使用浮點數最最基本的觀念
作者: comelin99 (jason)   2016-06-07 12:54:00
大大太厲害 感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com