Как конвертировать строку в число?

355
07 марта 2017, 17:07

Допустим, есть строка (string, не char) = "1234.55". Как конвертировать ее в полноценное вещественное число?

Answer 1

Рекомендую воспользоваться функцией из стандартного пространства имён std, которая появилась в c++11:

double stod (const string&  str, size_t* idx = 0);

Подробную информацию по ней можно найти тут.

Answer 2

Даже интересно прикинуть количество способов...

string s; double d;
1.  d = stod(s);
2.  d = atof(s.c_str());
3.  sscanf(s.c_str(),"%lf",&d);
4.  strtod(s.c_str(),0);
5.  istringstream(s) >> d;

Кто больше? :)

Answer 3

Ну допустим:

float i = boost::lexical_cast<float>("123.321");
READ ALSO
Реализация getline для своего класса string

Реализация getline для своего класса string

Здравствуйте, помогите пожалуйста, проблема в функции getline(),которая принимает 2 аргумента: Входной поток, из которого следует извлечь строку...

385
Посчитать количество единиц в числе

Посчитать количество единиц в числе

Вопрос предельно прост: надо посчитать количество единиц в двоичном представлении числа за О(1)Линии и логарифмы даже не предлагайте

489
Выбор СУБД для написания программы C++

Выбор СУБД для написания программы C++

ЗдравствуйтеС какой СУБД проще всего работать новичку в C++? На C# работал с Access, но теперь эта СУБД запрещена, поэтому нужна альтернатива

356
Как работает shared_mutex?

Как работает shared_mutex?

Не вполне понимаю, как работает shared_mutex в 17-ом стандарте или в boostТакая ситуация: несколько читателей одновременно захватывают этот мьютекс,...

322