Note that in general, double
is different from long double
.
strtod
converts string to double
, but which function should be use to converting string to long double?
In C++03, use boost::lexical_cast
, or:
std::stringstream ss(the_string);
long double ld;
if (ss >> ld) {
// it worked
}
In C99, use strtold
.
In C89, use sscanf
with %Lg
.
In C++11 use stold
.
There may be subtle differences as to exactly which formats each one accepts, so check the details first...
You've tagged your question as "C++", so I'm going to give you a C++ answer:
Why not just use streams?
std::stringstream ss(myString);
long double x;
ss >> x;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With