Wie Dezimal Wert als Argument übergeben Korrekt
-
10-07-2019 - |
Frage
Ich habe diese:
double myDecimal = static_cast<double>(atoi(arg_vec[1]));
cout << myDecimal << endl;
Aber warum, wenn ich übergeben das Argument wie folgt aus:
./MyCode 0.003
Er druckt 0
statt 0.003
.
Lösung
atoi()
wandelt auf ganzzahlige. Sie wollen atof()
.
Oder könnten Sie strtod ().
Andere Tipps
atoi () konvertiert in eine ganze Zahl, möchten Sie atof (), die zu einem Doppel wandelt
Da Sie C ++ verwenden, können Sie auch stringstreams verwenden:
istringstream ss(arg_vec[1]);
double d;
ss >> d;
double d = boost::lexical_cast<double>("0.003");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow