Cómo pasar el valor decimal como argumento correctamente
-
10-07-2019 - |
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
.
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