文字列を長いダブルに変換するためにどの関数を使用する必要がありますか?
-
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
所属していません StackOverflow