看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
Ducray:嗯!謝謝 我試試 03/06 02:54