Десятичные точки с std :: stringstream?

У меня есть набор целых чисел, которые я помещаю в stringstream s. Теперь я хочу изменить строковый поток на строку , сохранив при этом постоянную точность для строки . Как мне это сделать? Я знаю, что могу использовать stringstreams.precision () , но по какой-то причине он не работает:

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

26
задан Merlyn Morgan-Graham 25 February 2011 в 03:39
поделиться