將IEEE 754雙轉換為字串的演算法?
使用IEEE 754雙精度的許多程式語言提供了一個庫函式來將這些二進位制轉換為字串.例如,C有sprintf,C有stringstream,Java有Double.toString等.
在內部,這些功能如何實現?也就是說,他們使用什麼演算法將double轉換成字串表示,因為它們通常受到程式員選擇的精度限制?
謝謝!
各種軟體環境用於將浮點數轉換為字串表示的程式碼通常基於以下出版物(Steele和White特別經常引用的工作):
Jerome T. Coonen浮點演算法建議標準實施指南.電腦,卷13,No.1,1980年1月,第68-79頁
蓋伊. L. Steele Jr.和J. L. White.如何準確地列印浮點數.在ACM SIGPLAN’90程式語言設計和實現會議論文集112-126頁,White Plains,紐約,1990年6月.
大衛·蓋伊正確舍入的二進位制和十進位制二進位制轉換.技術報告90–10,AT& T Bell Laboraties,1990年11月.
一些相關的後續工作:
Robert G. Burger和R. Kent Dybvig.快速準確地列印浮點數.
在ACM SIGPLAN 1996會議論文集程式語言設計和實現中,第108-116頁,美國賓夕法尼亞州費城,1996年5月
Guy L. Steele Jr.和Jon L. White.回顧:如何準確地列印浮點數. ACM SIGPLAN通知,第39卷,第4期,第372-389頁,2004年4月
Florian Loitsch用整數快速準確地列印浮點數.在2010年ACM SIGPLAN程式語言設計與實現會議論文集,第233-243頁,加拿大,加拿大多倫多,2010年6月
http://stackoverflow.com/questions/7153979/algorithm-to-convert-an-ieee-754-double-to-a-string