[英]Which function should be use to converting string to long double?
請注意,通常, double
與long 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.