Frage

Während ich %g als Formatbezeichner in printf() bin mit, manchmal rundet es bis zu 2 Stellen nach dem Komma, manchmal bis zu 3 Plätze, someimes bis 4 Plätze ... wie es funktioniert so?

Eigentlich wo wir %g statt %f oder %e für Gleitkommazahlen verwenden sollten?

War es hilfreich?

Lösung

Das %g Formatspezifizierer macht seine Runden wie %f tun würde, aber wenn %f in 4.234000 führen würde, dann wird %g die nachgestellten Nullen weglassen und drucken 4.234.

%g verwendet werden soll, wenn es am meisten Sinn in Ihrem Ausgabeformat macht, dass einige Zahlen als 12345.6 gedruckt werden, während eine etwas größere Zahl würde als 1.235e04 gedruckt werden.

Andere Tipps

%g automatisch ‚dreht‘ zwischen der Verwendung von %e und %f je nach dem Wert, in einem Versuch, Anzeige, so viele Informationen wie möglich, in der gleichen Weise wie Handheld-Rechner tun. Auch mit %g nachfolgenden Nullen und Komma sind nicht enthalten.

Für die %f Umwandlung der „Präzision“ ist die Anzahl der Ziffern nach dem Komma , während für %g es ist die Anzahl der signifikanter Ziffern.
Die Standardgenauigkeit ist 6 in beiden Fällen.

Von dem printf Handbuch :

"Das doppelte Argument wird in der Art f oder e (oder F oder E umgewandelt für               G Konvertierungen). Die Genauigkeit gibt die Anzahl der signifikanten Stellen. Wenn die Genauigkeit fehlt, werden 6 Ziffern angegeben;               wenn die Genauigkeit Null ist, wird er behandelt, als 1. Style e verwendet wird,               wenn der Exponent von seiner Umwandlung kleiner als -4 oder größer               als die oder gleich der Präzision. Nachgestellte Nullen entfernt sind aus               der Bruchteil des Ergebnisses; nur ein Komma erscheint               wenn sie durch mindestens eine Ziffer folgt. "

Damit meine ich nicht zu „RTFM“, aber Sie werden wahrscheinlich finden, was Sie auf die Kontrolle der Präzision und Länge in den manuellen Abschnitten suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top