作者ottoli (欧特力)
看板Cad_Cae
标题Re: [请益] 请教AutoCAD 1.255问题
时间Tue May 24 22:40:43 2016
※ 引述《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://webptt.com/cn.aspx?n=bbs/Cad_Cae/M.1464100846.A.C84.html
1F:→ comelin99: 大大太厉害 感谢 06/07 12:54