文字列を長いダブルに変換するためにどの関数を使用する必要がありますか?

StackOverflow https://stackoverflow.com/questions/7389322

  •  29-10-2019
  •  | 
  •  

質問

一般的に、 double とは異なります long double.

strtod 文字列をに変換します double, 、しかし、どの関数を文字列を長いダブルに変換するために使用する必要がありますか?

役に立ちましたか?

解決

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.

それぞれが受け入れる形式について正確に微妙な違いがあるかもしれないので、最初に詳細を確認してください...

他のヒント

質問を「C ++」としてタグ付けしたので、C ++の回答をお伝えします。

なぜストリームを使用しないのですか?

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

C ++では、お勧めします boost::lexical_cast (または一般的にはiOSTREAMSを介して)。

cで?考えはありません。

使用できます istream 文字列から長いダブルを読む。こちらをご覧ください http://www.cplusplus.com/reference/iostream/istream/operator%3e%3e/

もし良かったら scanf 機能の家族、読みます %Lf

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top