std::string to double
-
Hallo.
Ich hab einen std::string in dieser Form: 2.45 und moechte das als double. Doch wenn ich einen istringstream nutze, macht der den Punkt einfach weg und ich erhalte 245 als double-Wert...
Gibts einen anderen Loesungsvorschlag?Gruss
Cartman
-
Output fetched:
#include <iostream> #include <sstream> using namespace std; int main() { istringstream asString("2.45"); double asDouble; asString >> asDouble; cout << asDouble << endl; // Output: 2.45 }
-
boost::lexical_cast<double>(mystring)
-
Zeig doch mal bitte den Code, der dies fabriziert...
-
std::istringstream input1, input2; double in1, in2; // fuer die istreams // viel Code { // irgendwo in verschachtelten for-Schleifen und if-Anweisungen input1.clear(); input2.clear(); input1.str(Zahlen[i]); input1 >> in1; input2.str(Zahlen[i+1]); input2 >> in2; erg = in1 + in2; // erg is vom Typ double std::ostringstream output; output << erg; Ergebnis = output.str(); // Ergebnis ist ein std::string; }Hier mal das wichtigste, da es sich um sehr umfangreichen Code handelt. Aber ich glaube hier steckt der Wurm drin...
Gruss
Cartman
-
Hast du zufälligerweise einen deutschen locale eingestellt? Dann würde ja der Punkt als Tausendertrenner interpretiert.
-
Dafür gibt es die Standardfunktion atof!
-
berniebutt schrieb:
Dafür gibt es die Standardfunktion atof!
...die aus der C-Stdlib kommt. C++ bietet bessere Möglichkeiten.
-
Hallo.
Sorry, der Wurm steckte woanders drin und nicht in der Konvertierung. Trotzdem danke fuer eure Muehe
Gruss
Cartman