Преобразуйте плавание в станд.:: строка в C++

У меня есть значение плавающее, которое должно быть помещено в a std::string. Как я преобразовываю из плавания для строкового представления?

float val = 2.5;
std::string my_val = val; // error here
62
задан davidism 16 November 2016 в 16:11
поделиться

3 ответа

Если вас не беспокоит производительность, используйте строковые потоки :

std::ostringstream ss;
ss << myFloat;
std::string s(ss.str());

Если вы не против Boost, lexical_cast<> является удобной альтернативой:

std::string s = boost::lexical_cast<std::string>(myFloat);

Эффективными альтернативами являются, например, FastFormat или просто функции в С-стиле.

56
ответ дан 24 November 2019 в 16:31
поделиться

Если вы беспокоитесь о производительности, посмотрите Boost Boost :: Lexical_Cast Библиотека.

1
ответ дан 24 November 2019 в 16:31
поделиться

Вы можете определить шаблон, который будет работать не только с удвоениями, но и с другими типами.

template <typename T> string tostr(const T& t) { 
   ostringstream os; 
   os<<t; 
   return os.str(); 
} 

Затем вы можете использовать его для других типов.

double x = 14.4;
int y = 21;

string sx = tostr(x);
string sy = tostr(y);
15
ответ дан 24 November 2019 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: