Pregunta

Tengo esto:

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

Pero por qué cuando paso el argumento de esta manera:

./MyCode 0.003   

Imprime 0 en lugar de 0.003 .

¿Fue útil?

Solución

atoi () se convierte en entero. Desea atof () .

O puede usar strtod ().

Otros consejos

atoi () convierte a un entero, desea atof (), que convierte a un doble

Como estás usando C ++, también puedes usar cadenas de cadenas:

istringstream ss(arg_vec[1]);
double d;
ss >> d;
double d = boost::lexical_cast<double>("0.003");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top