J'ai un tas d'entiers que je mets dans stringstream
s. Maintenant, je veux changer les stringstream
s dans string
s tout en conservant une précision constante avec les string
s. Comment ferais-je cela? Je sais que je peux utiliser stringstreams.precision()
, mais il ne fonctionne pas pour une raison quelconque:point décimal avec 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";
sera de retour 5.23\n3.134\n3.0
, plutôt que 5.23\n3.13\n3.00
merci, mais son ne fonctionne pas. im encore obtenir '3.0' plutôt que' 3.00' – noobcpp
@ noobcpp- Whoops! Mon erreur. Je viens de mentionner ce mis à jour que vous devez utiliser 'fixed' ou' le mode scientific' sur les stringstreams. Essayez de faire ce changement et voyez si cela arrange les choses. – templatetypedef
+1. @noobcpp: Aussi, consultez: http://www.cplusplus.com/reference/iostream/ios_base/precision/ (bien qu'ils disent d'utiliser 0 dans un endroit qui me donne une erreur de compilateur). –