Von Ihrer Referenz:
Breite:
Mindestanzahl von Zeichen gedruckt werden. Wenn der zu druckende Wert kürzer ist als diese Zahl, wird das Ergebnis mit Leerzeichen aufgefüllt. Der Wert wird nicht abgeschnitten, auch wenn das Ergebnis größer ist.
Beachten Sie, dass dies alle Zeichen einschließlich der zählt. und die vier Dezimalstellen
6 nach links + 4 nach rechts + 1 für dezimal = (nicht 10)
Was Sie wollen, ist "% 011.4f"
Getestet dies:
printf("%011.4f\n", 1.4);
Ergebnis ist:
000001.4000 // note 6 to the left and 4 to the right (plus the .) = 11
OP denkt, das '' 6'' bezieht sich nur auf das, was links vom '.'' steht. Er will nicht unbedingt, dass es mit zwei "0" gepolstert wird. –
@BitFiddlingCodeMonkey Von seiner Frage will er "003254.3999" ist das nicht mit 00 gepolstert? –
Er gibt nicht an, was er will. Das ist aber nur Semantik. Gut gemacht. –