2013-04-01 46 views
4

我想設置精度(即小數位數)的浮點數和長雙打到10,但我不希望他們零填充。即,使用stringstream精度來格式化浮點數,但丟棄零填充

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,但無法真正獲得它的掛起。 有什麼建議嗎?

回答

2

請勿使用ios::fixed作爲ios::floatfield。這是導致填充的原因。只需使用setprecision即可。