开发者

Which function should be use to converting string to long double?

No开发者_开发问答te 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;


In c++, I can only recommend boost::lexical_cast (or in general via the IOStreams).

In c ? no idea.


You can use istream to read long double from string. See here http://www.cplusplus.com/reference/iostream/istream/operator%3E%3E/

If you like scanf family of functions, read with %Lf

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜