如何正确地传递十进制值作为参数

时间:2009-03-12 02:36:40

标签: c++ decimal argument-passing

我有这个:

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

但是当我传递这样的论点时,为什么呢?

./MyCode 0.003   

它打印0而不是0.003

4 个答案:

答案 0 :(得分:7)

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

或者您可以使用strtod().

答案 1 :(得分:3)

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

答案 2 :(得分:2)

由于你正在使用C ++,你也可以使用stringstreams:

istringstream ss(arg_vec[1]);
double d;
ss >> d;

答案 3 :(得分:1)

double d = boost::lexical_cast<double>("0.003");