Heim > Backend-Entwicklung > C++ > Warum zeigt „std::cout.precision()' keine nachgestellten Nullen für Gleitkommazahlen an?

Warum zeigt „std::cout.precision()' keine nachgestellten Nullen für Gleitkommazahlen an?

Susan Sarandon
Freigeben: 2024-11-08 21:14:01
Original
584 Leute haben es durchsucht

Why Does  `std::cout.precision()` Not Display Trailing Zeros for Floating-Point Numbers?

std::cout.precision() und nachgestellte Nullen

Das Verständnis der korrekten Verwendung von std::cout.precision() ist von entscheidender Bedeutung bei der Anzeige von Gleitkommazahlen. In diesem Artikel untersuchen wir ein konkretes Beispiel zur Behebung eines unerwarteten Verhaltens.

Anfänglicher Code und Problem

Betrachten Sie den folgenden Code, der versucht, das Ergebnis von anzuzeigen Division zweier Ganzzahlen als Gleitkommazahl:

#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;
}
Nach dem Login kopieren

Dieser Code soll voraussichtlich 0,5000 anzeigen, aber stattdessen ist es so druckt 0,5. Diese Diskrepanz entsteht dadurch, dass es sich bei den ursprünglichen Datentypen um Ganzzahlen handelt.

Auflösung: std::fixed Manipulator

Um nachgestellte Nullen für Gleitkommazahlen anzuzeigen, Sie müssen den Manipulator std::fixed an std::cout übergeben. Dieser Manipulator stellt sicher, dass die Dezimaldarstellung die Festkommaschreibweise verwendet und nachgestellte Nullen beibehält.

#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;
}
Nach dem Login kopieren

Mit dem std::fixed-Manipulator gibt der Code jetzt korrekt 0,5000 aus. Der Manipulator std::setprecision() bleibt für die Angabe der gewünschten Anzahl an Dezimalstellen verantwortlich.

Das obige ist der detaillierte Inhalt vonWarum zeigt „std::cout.precision()' keine nachgestellten Nullen für Gleitkommazahlen an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage