4

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

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 但无法真正掌握它。有什么建议么?

4

1 回答 1

2

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

于 2013-04-01T09:14:29.197 回答