我嘗試轉換double
數爲std::string
,轉換應打印或是與2小數位十進制格式或指數形式:轉換浮點數到一個格式化字符串
- 1 - > 1.00
- 0.1 - > 0.10
- 0.01 - > 0.01
- 0.015 - > 1.5E-2
- 10 - > 10.00
- 100 - > 100.00
- 15000 - > 1.5e4
我試圖用boost::format
功能與%g
類型,但同時也可以設置顯著的位數,這是不可能的設置小數點後的印刷位數:
- 1 - > 1
- 0.1 - > 0.1
- 0.01 - > 0.01
- 10 - > 10
- 100 - > 100
有沒有做這種轉換/格式化的更好的辦法?我最好使用標準庫或Boost。
這是iostream的輸出是正確的。結合'setprecision'來限制打印的數字。 – AJG85
我想避免檢查數字的大小,仍然有一個漂亮的輸出。我將繼續使用boost :: format(它會輸出不錯的i18n格式的數字),並在設置格式化掩碼前檢查數字的大小。 –