Gibt es eine Möglichkeit, die "minimale" Anzahl von Dezimalstellen festzulegen, die ein std :: ostream ausgeben soll?Mindestanzahl von Dezimalstellen für die Genauigkeit von std :: ostream festlegen
Zum Beispiel sagen, dass ich zwei unbekannte Doppel Variablen, die ich drucken möchten (Werte hier aus Gründen der Erläuterung hinzugefügt):
double a = 0;
double b = 0.123456789;
Ich kann meine maximale Dezimalgenauigkeit so, dass ich Ausgang b
genau eingestellt
std::cout << std::setprecision(9) << b << std::endl;
>>> 0.123456789
gibt es eine Möglichkeit, eine „Minimum“ Präzision (eine minimale Anzahl von Dezimalstellen) einzustellen, während die „maximale“ Präzision beibehalten wird, so daß
std::cout << a << std::endl << b << std::endl;
Ausbeuten
0.0
0.123456789
nicht
0
0.123456789
?
Danke! Phil
die kurze Antwort ist "Nein". Der Stream hat nur eine Genauigkeitseinstellung, wobei keine Möglichkeit besteht, zwischen maximaler und minimaler Genauigkeit zu unterscheiden. Vielen Dank für Ihre großzügige Beratung!
Lesen Sie die Frage sorgfältig durch. Phil will eine MINIMUM von 1 Stelle der Genauigkeit nach dem Dezimalpunkt, aber mehr, wenn es nicht Nullstellen gibt. – Oddthinking
@Phil: Sie könnten http://stackoverflow.com/questions/2475642/how-to-achieve-the-following-c-output-formatting hilfreich finden. –
Danke Roger. Das ist sehr hilfreich. Ihr Formatierungsbeispiel sieht nach dem richtigen Weg aus. –