Re: [請益] 請教AutoCAD 1.255問題
分享個人的經驗
整數的運算結果,絕對沒有誤差。
浮點數的運算結果,一定會有誤差。
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: sjgau4311@gmail.com
我的課程介紹網頁:
http://www.csie.ntu.edu.tw/train/teacher_display.php?num=18
AutoCAD 台灣地區菁英講師獲選
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.195.32
※ 文章網址: https://www.ptt.cc/bbs/Cad_Cae/M.1464142257.A.DFE.html
推
06/07 12:54, , 1F
06/07 12:54, 1F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):