我尝试转换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格式的数字),并在设置格式化掩码前检查数字的大小。 –