printf mit führenden Nullen in C

printf mit führenden Nullen in C


Ich habe eine Fließkommazahl wie 4917.24 . Ich möchte es so drucken, dass es immer fünf Zeichen vor dem Dezimalkomma hat, mit führenden Nullen, und dann drei Ziffern nach dem Komma.


Ich habe printf("%05.3f", n) versucht auf dem eingebetteten System, das ich verwende, aber es gibt ***** aus . Habe ich den Formatbezeichner richtig?


Antworten:


Ihr Formatbezeichner ist falsch. Ab printf() Manpage auf meinem Rechner:



Für Ihren Fall wäre Ihr Format %09.3f :


#include <stdio.h>
int main(int argc, char **argv)
{
printf("%09.3f\n", 4917.24);
return 0;
}

Ausgabe:


$ make testapp
cc testapp.c -o testapp
$ ./testapp
04917.240

Beachten Sie, dass diese Antwort davon abhängig ist, dass Ihr eingebettetes System einen printf() hat Implementierung, die für diese Details standardkonform ist - viele eingebettete Umgebungen nicht eine solche Implementierung haben.