Если вы предпочитаете использовать метод c ++ (вместо функции ac)
Используйте потоки, как и все другие типы:
#include <iostream>
#include <sstream>
#include <string>
#include <iterator>
#include <boost/lexical_cast.hpp>
int main()
{
std::string val = "2.12e-6";
double x;
// convert a string into a double
std::stringstream sval(val);
sval >> x;
// Print the value just to make sure:
std::cout << x << "\n";
double y = boost::lexical_cast<double>(val);
std::cout << y << "\n";
}
Повышение, конечно, имеет удобный ускоренный удар: lexical_cast Или написать свой собственный тривиально.