作者sjgau (sjgau)
标题Re: [请益] 请教AutoCAD 1.255问题
时间Wed May 25 10:10:51 2016
分享个人的经验
整数的运算结果,绝对没有误差。
浮点数的运算结果,一定会有误差。
double x= 123.456;
储存在 x 里面的二进位表示,分别为
一个bit, 表示x的 +/-
11 个bits, 表示x 的二进位次方的数量级
52个bits , 表示 x 的 0.5 - 1.0 的精确度部分
也就是说, 123.456 --> a*b*(2^c)
a, b, c 是二进位,
浮点数的比较运算,不能够直接
if (x == y) then . . .
必须改成
if (rel_diff(x, y) < delta) then . . .
rel_diff() 是求 x, y 的相对误差,
rel_diff(x, y) 会等於 abs_diff(a, y)/(max(abs(x), abs(y)))
abs_diff(x, y)= abs(x - y);
abs(x) 是计算 x 的绝对值
delta 的值,大概是 (10^-14)
--
e-mail:
[email protected]
我的课程介绍网页:
http://www.csie.ntu.edu.tw/train/teacher_display.php?num=18
AutoCAD 台湾地区菁英讲师获选
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.193.195.32
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Cad_Cae/M.1464142257.A.DFE.html
1F:推 comelin99: 感谢大大~这边高手好的 06/07 12:54