1

我有这个:

double myDecimal = static_cast<double>(atoi(arg_vec[1]));
cout << myDecimal << endl;

但是为什么当我通过这样的论点时:

./MyCode 0.003   

它打印0而不是0.003.

4

4 回答 4

7

atoi()转换为整数。你想要atof()

或者你可以使用strtod()。

于 2009-03-12T02:38:39.930 回答
3

atoi() 转换为整数,你想要 atof(),它转换为 double

于 2009-03-12T02:38:32.300 回答
2

由于您使用的是 C++,因此您还可以使用字符串流:

istringstream ss(arg_vec[1]);
double d;
ss >> d;
于 2009-03-12T03:10:06.873 回答
1
double d = boost::lexical_cast<double>("0.003");
于 2009-03-12T08:57:23.280 回答