Verhindern, dass die wissenschaftliche Notation in Ostream bei der Verwendung von << mit Doppel

StackOverflow https://stackoverflow.com/questions/2335657

Frage

Ich brauche meine Doppel zu verhindern, in der wissenschaftlichen Schreibweise in meiner Datei zu drucken,

, wenn ich diese

outfile << X;
War es hilfreich?

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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top