[GELOEST]grossen float/double-wert ohne potenz ausgeben
-
gint es eine Möglichkeit anstatt
1.23457e+008folgendes
123456789auszugeben?
Der Wert soll aber noch zu weiteren Rechnungen verwendet werden, außerdem soll die Möglichkeit der Nachkommastellen erhalten bleiben.
String oder long int etc. sind daher ausgeschlossen.
mfg manfredkaush
-
manfredkaush schrieb:
String oder long int etc. sind daher ausgeschlossen.
du könntest den Wert nur für die Ausgabe in einen long casten (der Inhalt der eigentlichen Variable bleibt dabei erhalten).
Eine andere Möglichkeit sind stream-manipulatoren
-
Mit welcher Funktion gibst du den Wert überhaupt aus? printf(), cout oder was?
-
Das geht mit dem Manipulator fixed:
double d = 1.23457e+008; cout << fixed << d << endl;Die Anzahl der Nachkommastellen setzt Du dann mit setprecision fest (erfordert #include <iomanip>) - also z:B.:
double d = 1.23457e+008; cout << fixed << setprecision(2) << d << endl;Gruß
Werner
-
pumuckl schrieb:
du könntest den Wert nur für die Ausgabe in einen long casten
soweit so gut
kallpt auch alles nur bei den nachkommastellen gibt es probleme
123456789.23wird zu
123456792@wxSkip per
ofstream output(dataname.c_str(),ios_base::out); output << floatwertmit
output << fixed << setprecision(2) << floatwerterhalte ich
123456792.00mfg manfredkasuh
-
edit:
habs mit dem stream maipulatoren und double werten probiertworks fine

danke!
mfg manfredkaush
Lösung:
#include <iomanip>...
output << fixed << setprecision(2) << double-wert;