作者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/m.aspx?n=bbs/Cad_Cae/M.1464142257.A.DFE.html
1F:推 comelin99: 感謝大大~這邊高手好的 06/07 12:54