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