簡體   English   中英

應該使用哪個函數將字符串轉換為long double?

[英]Which function should be use to converting string to long double?

請注意,通常, doublelong double不同。

strtod將字符串轉換為double ,但是應該使用哪個函數將字符串轉換為long double?

在C ++ 03中,使用boost::lexical_cast ,或者:

std::stringstream ss(the_string);
long double ld;
if (ss >> ld) {
    // it worked
}

在C99中,使用strtold

在C89中,使用帶有%Lg sscanf

在C ++ 11中使用stold

關於每個人接受哪種格式可能存在細微差別,因此請先查看詳細信息......

您已將問題標記為“C ++”,因此我將給您一個C ++答案:

為什么不直接使用流?

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

在c ++中,我只能推薦boost::lexical_cast (或者通常通過IOStreams)。

在c? 不知道。

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

如果您喜歡scanf系列函數,請閱讀%Lf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM