Como passar valor decimal como argumento corretamente
-
10-07-2019 - |
Pergunta
eu tenho este:
double myDecimal = static_cast<double>(atoi(arg_vec[1]));
cout << myDecimal << endl;
Mas por que quando eu passar o argumento como este:
./MyCode 0.003
Ela imprime 0
vez de 0.003
.
Solução
atoi()
convertidos para inteiro. Você quer atof()
.
Ou você pode usar strtod ().
Outras dicas
atoi (convertidos a um inteiro), você quer atof (), que se converte em um duplo
Uma vez que você estiver usando C ++, você também pode usar stringstreams:
istringstream ss(arg_vec[1]);
double d;
ss >> d;
double d = boost::lexical_cast<double>("0.003");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow