Heim  >  Artikel  >  Backend-Entwicklung  >  Wie geht das %g-Format von fmt.Printf mit Breiten- und Präzisionsfeldern um, wenn es mit führenden Nullen umgeht?

Wie geht das %g-Format von fmt.Printf mit Breiten- und Präzisionsfeldern um, wenn es mit führenden Nullen umgeht?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 10:35:30317Durchsuche

How does fmt.Printf's %g format handle width and precision fields when dealing with leading zeroes?

Verhalten von fmt.Printf mit Breiten- und Präzisionsfeldern für %g

In fmt.Printf das %g-Format für Gleitkommazahlen Werte bietet Flexibilität bei der Angabe von Breite und Genauigkeit. Bei der Kombination dieser Felder sind jedoch Nuancen zu beachten.

Präzision und Gesamtzahl der Ziffern

Im Gegensatz zu anderen Gleitkommaformaten (%f und %e) Für %g gibt das Präzisionsfeld die Gesamtzahl der Ziffern nach der Dezimalstelle an (ohne führende Nullen und Exponenten). Beispielsweise stellt %.4g sicher, dass es insgesamt vier Ziffern gibt, unabhängig von führenden Nullen.

Führende Nullen und Mindestbreite

Führende Nullen werden aus Präzisionsgründen als Ziffern gezählt werden jedoch bei der Berechnung der Mindestbreite nicht berücksichtigt. Die Mindestbreite bestimmt die Gesamtfeldbreite und wird über das Feld Breite (z. B. g) festgelegt.

Wie sich .9g verhält

In Ihrem speziellen Fall gibt .9g insgesamt neun Ziffern (ohne führende Nullen) und eine Mindestbreite von 10 Zeichen an:

  • Für 0,0606060606060606 ergeben neun Ziffern ohne führende Nullen 0,0606060606, was bereits der Fall ist erfüllt die Mindestbreite von 10.
  • Für 0,3333333333333333 ergeben neun Ziffern ohne führende Nullen 0,333333333, was ebenfalls der Mindestbreite entspricht.
  • Für 0,05 ergeben neun Ziffern ohne führende Nullen 0,05, was zu wenig ist der Mindestbreite von 10, daher wird es aufgefüllt, um die verbleibenden sechs Zeichen zu füllen.
  • Das Gleiche gilt für 0,4.
  • Für 0,1818181818181818 ergeben neun Ziffern ohne führende Nullen 0,181818182 (mit Rundung) , was wiederum der Mindestbreite entspricht.

Zusammenfassend lässt sich sagen, dass die unterschiedlichen Ausgaben für Ihre Eingabewerte auf das Zusammenspiel zwischen Präzision (Bestimmung der Anzahl der angezeigten Ziffern) und Mindestbreite (Gewährleistung einer) zurückzuführen sind bestimmte Feldbreite).

Das obige ist der detaillierte Inhalt vonWie geht das %g-Format von fmt.Printf mit Breiten- und Präzisionsfeldern um, wenn es mit führenden Nullen umgeht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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