Nachdem Sie dies jedoch getan haben, jedes Mal, wenn Sie a drucken float oder ein doubleüberall in Ihrem Projekt, wird die Nummer weiterhin in dieser festen Schreibweise gedruckt. Sie können es mit zurückdrehen
cout << scientific;
Dies kann jedoch mühsam werden, wenn Ihr Code komplizierter wird.
Aus diesem Grund hat Boost die I/O Stream State Saver, wodurch der von Ihnen verwendete I/O-Stream automatisch in den Zustand zurückversetzt wird, in dem er sich vor Ihrem Funktionsaufruf befand. Sie können es wie folgt verwenden:
#include <boost/io/ios_state.hpp> // you need to download these headers first
{
boost::io::ios_flags_saver ifs( os );
cout << ios::fixed;
cout<<"Bas ana: "<<x<<"tSon faiz: "<<t<<"tSon ana: "<<x+t<<endl;
} // at this bracket, when ifs goes "out of scope", your stream is reset
Vielleicht möchten Sie auch mal vorbeischauen Boost-Format-Bibliothek was auch Ihre Ausgabe erleichtern kann, insbesondere wenn Sie sich mit Internationalisierung befassen müssen. Es wird Ihnen jedoch bei diesem speziellen Problem nicht helfen.
Ahmad Yones
Code die nächste Syntax:
std::cout << std::fixed << std::setprecision(n);
wo (n) ist die Zahl der Dezimalgenauigkeit. Dies sollte es beheben.
Bas ana: 3284.776791 Son faiz: 1784.776791 Son ana: 5069.553581
Bas ana: 7193.172376 Son faiz: 3908.395585 Son ana: 11101.567961
...
Der Vorteil dieses Ansatzes besteht darin, dass der Stream-Status nicht geändert wird.
In der Zwischenzeit können Sie verwenden die {fmt}-Bibliothek, std::format basiert auf. {fmt} bietet auch die print Funktion, die dies noch einfacher und effizienter macht (Gottriegel):
Es gibt eine ganze Sammlung von Formatierungsoperatoren, die Sie mit iostream erhalten. Hier ist ein Lernprogramm um Ihnen den Einstieg zu erleichtern.
Zig Razor
Sie können die Funktion verwenden Fest auf diese Weise :
std::cout << std::fixed << ...
Oder Sie können die printf-Funktion mit einem Standardformat wie “12.12%f” auf diese Weise verwenden:
printf (“number = %12.12f”, float_number);
.
7996400cookie-checkWie man C++ dazu bringt, keine wissenschaftliche Notation zu verwendenyes
Warum wirkst du a
double
zudouble
?– Fred Foo
6. März 11 um 17:18 Uhr
Mögliches Duplikat von Verhindern Sie die wissenschaftliche Notation im Ostream, wenn Sie << mit double verwenden
– Mechanische Schnecke
22. August 12 um 3:38 Uhr