Korrekte Verwendung von std::cout.precision() für die Anzeige der nachgestellten Nullen
Die mit std::cout.precision( angegebene Genauigkeit) ) bestimmt die Anzahl der Dezimalstellen, die bei der Formatierung einer Gleitkommazahl berücksichtigt werden sollen. In einigen Fällen werden nachgestellte Nullen jedoch möglicherweise nicht wie erwartet angezeigt.
Bedenken Sie den folgenden Codeausschnitt:
#include <iostream> #include <stdlib.h> int main() { int a = 5; int b = 10; std::cout.precision(4); std::cout << (float)a / (float)b << "\n"; return 0; }
Dieser Code versucht, das Ergebnis der Division zweier Ganzzahlen als Gleitkomma auszugeben -Kommazahl mit einer Genauigkeit von vier Dezimalstellen. Die Ausgabe zeigt jedoch „0,5“ statt der erwarteten „0,5000“. Dies liegt daran, dass die ganzzahligen Datentypen beim Durchführen der Division implizit in Gleitkommazahlen konvertiert werden, die Genauigkeit jedoch nicht speziell auf die Ganzzahl-in-Fließkomma-Konvertierung angewendet wurde.
Um nachfolgende Nullen korrekt anzuzeigen, ist eine zusätzliche Manipulator, std::fixed, muss mit std::cout: verwendet werden.
#include <iostream> #include <stdlib.h> #include <iomanip> int main() { int a = 5; int b = 10; std::cout << std::fixed; std::cout << std::setprecision(4); std::cout << (float)a / (float)b << "\n"; return 0; }
Der std::fixed-Manipulator weist an std::cout zur Ausgabe von Gleitkommazahlen in Festkommaschreibweise, einschließlich nachgestellter Nullen. Der Manipulator std::setprecision(4) gibt an, dass die Ausgabe eine Genauigkeit von vier Dezimalstellen haben soll.
Durch die Einbindung des Manipulators std::fixed werden in der Ausgabe des Codeausschnitts nun nachgestellte Nullen korrekt angezeigt, was zur Folge hat in „0,5000“ wie erwartet.
Das obige ist der detaillierte Inhalt vonWarum zeigt „std::cout.precision()' nachgestellte Nullen nicht wie erwartet an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!