double
一般に、とは異なることに注意してくださいlong double
。
strtod
文字列をdouble
に変換しますが、文字列を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 では、 とともに使用sscanf
し%Lg
ます。
C++11 ではstold
.
それぞれが受け入れる形式については微妙な違いがある可能性があるため、最初に詳細を確認してください...
質問に「C++」のタグを付けたので、C++ の回答を提供します。
ストリームを使用しないのはなぜですか?
std::stringstream ss(myString);
long double x;
ss >> x;
C++ では、お勧めできますboost::lexical_cast
(または一般的には IOStreams 経由)。
で?わかりません。
istream
文字列から long double を読み取るために使用できます。ここを参照してください http://www.cplusplus.com/reference/iostream/istream/operator%3E%3E/
scanf
関数のファミリーが好きなら、一緒に読んでください%Lf