使用字符串流精度格式化浮点,但丢弃零填充

Using stringstream precision to format floats but discarding zero-padding

本文关键字:填充 字符串 精度 格式化      更新时间:2023-10-16

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

123456.789123456789应给出123456.7891234 568,但是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,但无法真正掌握窍门。有什么建议吗?

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