我有一堆整數,我把它放入stringstream
s。現在我想將stringstream
s更改爲string
s,同時保持與string
s的恆定精度。我會怎麼做?我知道我可以使用stringstreams.precision()
,但它不工作的一些原因:小數點與std :: stringstream?
float a = 5.23;
float b = 3.134;
float c = 3.0;
std::stringstream ta;
std::stringstream tb;
std::stringstream tc;
ta << a;
tb << b;
tc << c;
ta.precision(2);
tb.precision(2);
tc.precision(2);
std::string out = "";
out += ta.str() + "\n";
out += tb.str() + "\n";
out += tc.str() + "\n";
將返回5.23\n3.134\n3.0
,而不是5.23\n3.13\n3.00
謝謝,但它不工作。即時通訊仍然獲得'3.0'而不是'3.00' – noobcpp
@ noobcpp-哎呀!我的錯。我只是更新了這一點,提到你需要在字串流上使用'fixed'或'scientific'模式。嘗試做出改變,看看它是否修復了一些事情。 – templatetypedef
+1。 @noobcpp:另外,看看:http://www.cplusplus.com/reference/iostream/ios_base/precision/(儘管他們說在一個給我編譯器錯誤的地方使用0)。 –