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 .

È stato utile?

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
scroll top