推 Ducray:嗯!謝謝 我試試 03/06 02:54
※ 引述《Ducray (滴滴答答滴滴搭)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: C++
: 問題(Question):
: 我把十進位轉到二進位制,小數部份限定最多七個位元,
: 請問要怎樣才能找到最接近實際值的值呢?(就是誤差比較小的意思)
: 例如:十進位的0.1轉到其他進位制變成0.1000001 比0.000008更接
: 近實際值(不是真實情況,純舉例)
: 補充說明(Supplement):
: 我的想法是先找出直接轉換的小數點下七個數字(八以後就不會顯示了)
: 然後在最後一位+1和-1,共三個數作比較,差值最小的就是最近似的值
: 這樣ok嗎?
: 請問有沒有更好的方法呢??
其實只要轉成二進位後0捨1入即可
____
以你的 0.1 來說 轉成二進位是0.00011 後四位循環
那麼取小數七位就是 0.0001100|1100....
切點後是 1 進位 得 0.0001101 就是你要的了 (十進位 0.1015625)
這和十進位我們會用四捨五入的道理是一樣的
--
有人喜歡邊玩遊戲邊上逼;
也有人喜歡邊聽歌邊打字。
但是,我有個請求,
選字的時候請專心好嗎?
-- 改編自「古 火田 任三郎」之開場白
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.28.92