我正在尝试将浮点数和长双精度的精度(即小数位数)设置为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,但实际上并没有真正掌握它。 有什么建议吗?
答案 0 :(得分:2)
不要将ios::fixed
用于ios::floatfield
。这就是导致填充的原因。只需使用setprecision
。