В C ++ 03 используйте boost::lexical_cast
или:
std::stringstream ss(the_string);
long double ld;
if (ss >> ld) {
// it worked
}
В C99 используйте strtold
.
В C89 используйте sscanf
с %Lg
.
В C ++ 11 используйте stold
.
Могут быть тонкие различия в том, какие именно форматы принимает каждый, поэтому сначала проверьте детали ...