我有这样的:

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

但是为什么当我传递参数是这样的:

./MyCode 0.003   

它打印0代替0.003

有帮助吗?

解决方案

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

或者你可以使用关于strtod()。

其他提示

的atoi()转换为整数,想要ATOF(),其转换成一个双

由于您使用C ++,还可以使用stringstreams:

istringstream ss(arg_vec[1]);
double d;
ss >> d;
double d = boost::lexical_cast<double>("0.003");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top