如何让std :: stringstream在浮点数上排列小数位?

时间:2013-03-13 13:57:14

标签: c++ floating-point string-formatting stringstream text-alignment

在C ++中,我有一些这样的代码:

float hits = 10.12;
float mins = 2.19;
std::ostringstream ss;

ss.precision(2);

ss << std::fixed << hits << "%\n"
   << std::fixed << mins << "%";

std::cout << ss.str();

这给了我这个输出:

10.12%
2.19%

然而,我希望小数位对齐:

10.12%
 2.19%

有没有办法在小数点前填充空格,以便在小数位前有两位数的固定空格宽度?

2 个答案:

答案 0 :(得分:6)

使用width设置列大小,然后使用std::right来验证输出。

答案 1 :(得分:3)

setw()setprecision()来确定输出宽度和浮点值的精度。所以你应该能够像

一样使用它
ss << setw(8) << hits << "%\n"; ...

查看here以供参考。