1

このような方法で文字列を変換することはお勧めできません:

string input = "81.312";
double val = atof(input.c_str());
4

2 に答える 2

11

std::atofC++ では使用しないでください。それは入力エラーをチェックしません。

を使用しstd::stodます。エラーもチェックし、それに応じて例外をスローします。

また、std::string const &引数としてとります。したがって、合格する必要はありませんinput.c_str()。これを行うだけです:

double value = std::stod(input);
于 2012-12-06T18:46:53.933 に答える
0

それは間違いではありませんが、boost::lexical_cast を使用する方が正しいでしょう。

これらのツールが NAN と INF を正しく処理するかどうかも確認する必要があります。

于 2012-12-06T18:47:38.037 に答える