使用stringstream精度格式化浮点数但丢弃零填充

时间:2013-04-01 09:12:38

标签: c++ stringstream

我正在尝试将浮点数和长双精度的精度(即小数位数)设置为10,但我不希望它们为零填充。即,

123456.789123456789应该给123456.7891234568,但是 123456不应该给123456.0000000000,而是123456

到目前为止,我已将其缩小为:

long double myNumber;
string myString;
ostringstream myStream;
myStream.setf(ios::fixed,ios::floatfield);
myStream.precision(10);
myStream << myNumber;
myString = myStream.str();

我也试过摆弄setfill('')和std :: ws,但实际上并没有真正掌握它。 有什么建议吗?

1 个答案:

答案 0 :(得分:2)

不要将ios::fixed用于ios::floatfield。这就是导致填充的原因。只需使用setprecision