Come passare correttamente il valore decimale come argomento
-
10-07-2019 - |
Domanda
Ho questo:
double myDecimal = static_cast<double>(atoi(arg_vec[1]));
cout << myDecimal << endl;
Ma perché quando passo l'argomento in questo modo:
./MyCode 0.003
Stampa 0
anziché 0.003
.
Soluzione
atoi ()
viene convertito in intero. Vuoi atof ()
.
Oppure puoi usare strtod ().
Altri suggerimenti
atoi () converte in un numero intero, vuoi atof (), che converte in doppio
Dato che stai usando C ++, puoi anche usare stringstreams:
istringstream ss(arg_vec[1]);
double d;
ss >> d;
double d = boost::lexical_cast<double>("0.003");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow