作者supisces (被~~~切~~~八~~~段)
看板C_and_CPP
標題Re: [問題] 請問如何 '較精確的' 轉換 float 到 do …
時間Thu Apr 5 11:11:24 2012
※ 引述《wahaha99 (此方不可長)》之銘言:
: float 在超過本身的七位有效值後面仍然有一大串無效值,
: 這點是本來就知道的, 但我發現在經過 double( ) 轉換後,
: 這些無效值會被完完整整的搬過去。
: 我現在想請教的是, 有沒有什麼方法, 可以把float搬過去的同時,
: 把這些無效值去除掉。
: 簡單來說就像是:
: float double
: 0.xxxxxxxyyyyyy => 0.xxxxxxx000000
: x是有效部分, y是無效部分
: 我想過轉換回string處理, 但c++的string實在不太快;
: 使用上也不太友善。(大概是因為我還不熟悉)
: 不知道有什麼好方法可以建議呢? 謝謝。
這篇已經有大大解答了,
我想問的是 "七位有效值" 是怎麼得到的?
我看到一個題目如下:
What number of digits that can be accurately stored
in a float (based on the IEEE Standard 754)?
答案是 6
指的是小數點後六位嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 96.55.113.197
推 EdisonX:mantissa=23bits,normailze=1bits,有效位數 24 bits. 04/05 12:49
→ EdisonX:2^-23 約等於 1.19e-007 . 可完全準確到小數後六位。 04/05 12:55
→ supisces:了解了, 感謝. 04/05 14:05