应该使用哪个函数将字符串转换为long double?

时间:2011-09-12 14:17:12

标签: c++ c parsing long-double

请注意,一般情况下,doublelong double不同。

strtod将字符串转换为double,但是应该使用哪个函数将字符串转换为long double?

4 个答案:

答案 0 :(得分:15)

在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

对于每个人接受的确切格式,可能会有细微差别,因此请先检查详细信息......

答案 1 :(得分:6)

您已将问题标记为“C ++”,因此我将给您一个C ++答案:

为什么不直接使用流?

std::stringstream ss(myString);
long double x;
ss >> x;

答案 2 :(得分:1)

在c ++中,我只能推荐boost::lexical_cast(或通常通过IOStreams)。

在c?不知道。

答案 3 :(得分:1)

您可以使用istream从字符串中读取long double。见http://www.cplusplus.com/reference/iostream/istream/operator%3E%3E/

如果您喜欢scanf系列功能,请阅读%Lf