2

測試用例的標準化和工程科學記數法:最快的算法來計算數量

- >數的標準化科學記數法會是3.5 * 10E4

- >工程符號將是35 * 10E3

一個簡單的算法,這樣做會保持數字除10,直到我們得到所需的符號。然而,這意味着算法會是O(零的數量)。我們可以做得更好嗎?

+0

如果是雙倍數據,您可以直接提取尾數以獲得非常好的第一個近似值,儘管這樣會在雙倍數不再存儲的極端處正常化。 – 2012-01-29 17:11:41

+1

假設日誌的快速實現,int exp = floor(log(x))和expEng = 3(exp/3) – 2012-01-29 17:34:21

+0

@ Adam,問題是日誌有多高效? – unj2 2012-01-29 17:49:59

回答

5

有關打印浮點數的人性化表示的主題的經典論文可以閱讀here。這太複雜了,不能在這裏作爲答案中的代碼進行討論。