среда, 15 февраля 2012 г.

C++. Конвертирование строки в число

Решением может быть такая функция:
#include <string>
#include <sstream>

using std::string;
using std::istringstream;

...

double stringToDouble(const string &str) {

    istringstream stm;
    double val = 0;

    stm.str(str);
    stm >> val;

    return val;
}

...


UPD 06.01.2021
Новые функции в C++11.

2 комментария:

  1. наверное многие слышали(или просто встречали) про boost.lexical_cast. я его юзаю очень часто. но у меня постоянно было(не понятно откуда) мнение о том, что рантайм оверхед этого шаблона необычайно велик. по этому, в задачах критичных к производительности я использовал Си`шные функции.
    неделю назад, я каким-то невероятным образом наткнулся на страницу сравнения разных способов преобразования типов написанную самим авторов boost.lexical_cast(http://www.boost.org/doc/libs/1_49_0/doc/html/boost_lexical_cast/performance.html), и был дико удивлен тем, что boost.lexical_cast в 98% работает быстрее всех остальных способов преобразования, а иногда до 20ти раз быстрее.

    все, везде только его =)

    ОтветитьУдалить
  2. Ничего себе... Надо будет обязательно затестить.

    ОтветитьУдалить