Verhindern, dass die wissenschaftliche Notation in Ostream bei der Verwendung von << mit Doppel
-
22-09-2019 - |
Frage
Ich brauche meine Doppel zu verhindern, in der wissenschaftlichen Schreibweise in meiner Datei zu drucken,
, wenn ich diese
outfile << X;
Lösung
auf der schwimmenden Variablen Formatierung Sie eine Kombination aus setprecision(n)
showpoint
und fixed
. Um parametrisierte Strom Manipulatoren wie setprecision(n)
zu verwenden, werden Sie die iomanip Bibliothek enthalten müssen:
#include <iomanip>
setprecision(n)
. Wird die Floating-Ausgabe an n
Orte zu beschränken, und wenn Sie es eingestellt ist, wird es eingestellt, bis Sie es explizit unset für den Rest der Stroms Ausgabe
fixed
: erzwingt, dass alle Gleitkommazahlen Ausgang ist die gleiche Weise. Also, wenn Sie Ihre Präzision ist auf 4 Plätze, 6.2
und 6.20
werden beide ausgegeben werden als:
6.2000
6.2000
showpoint
: wird die dezimalen Teile eines Gleitkommavariable zwingen angezeigt werden, auch wenn sie nicht explizit festgelegt wird. Zum Beispiel wird 4
ausgegeben werden als:
4.0
sie alle zusammen verwenden:
outfile << fixed << showpoint;
outfile << setprecision(4);
outfile << x;
Andere Tipps
Alle oben genannten Antworten waren nützlich, aber keine direkt die Frage beantworten.
outfile.setf(ios_base::fixed);
outfile << x;
Ich fand die Antwort in @moogs verlinken: http: //www.cplusplus. com / reference / iostream / ios_base / fmtflags /
Hier ist ein Demo-Programm: http://ideone.com/FMxRp1
Hier ist ein Beispiel für die Nutzung http://cplus.about.com/od/learning1/ss/clessontwo_4. htm
wie pro Ihre Frage Verwendung
std::cout << std::fixed << a << std::endl;
Sie können Format-Flags verwenden