10進値を引数として正しく渡す方法
-
10-07-2019 - |
質問
これがあります:
double myDecimal = static_cast<double>(atoi(arg_vec[1]));
cout << myDecimal << endl;
しかし、なぜ次のように引数を渡すのですか:
./MyCode 0.003
0.003
ではなく 0
を出力します。
解決
atoi()
は整数に変換されます。 atof()
が必要です。
または strtod()を使用できます。
他のヒント
atoi()は整数に変換します。atof()はdoubleに変換します
C ++を使用しているため、stringstreamsも使用できます。
istringstream ss(arg_vec[1]);
double d;
ss >> d;
double d = boost::lexical_cast<double>("0.003");
所属していません StackOverflow