标签: c++ decimal argument-passing
我有这个:
double myDecimal = static_cast<double>(atoi(arg_vec[1])); cout << myDecimal << endl;
但是当我传递这样的论点时,为什么呢?
./MyCode 0.003
它打印0而不是0.003。
0
0.003
答案 0 :(得分:7)
atoi()转换为整数。你想要atof()。
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");