Forum: Compiler & IDEs zahlen formatiern


von harald (Gast)


Lesenswert?

Hallo
ich habe in meinem C Buch gelesen das mit Hilfe der 0 bei printf alle 
leeren Stellen mit 0 gefühlt werden.
Funktioniert bei mir nur nicht.
Habe es so probiert
1
sprintf(displayData," wert=%02.2f\n\r",wert);
Was mache ich falsch?

herbert

von Karl H. (kbuchegg)


Lesenswert?

harald schrieb:
> Hallo
> ich habe in meinem C Buch gelesen das mit Hilfe der 0 bei printf alle
> leeren Stellen mit 0 gefühlt werden.
> Funktioniert bei mir nur nicht.
> Habe es so probiert
>
> [c]
>
> sprintf(displayData," wert=%02.2f\n\r",wert);

Du dürftest eher den Rest fehlinterpretieren.

  2.2

bedeutet: 2 Positionen insgesamt, und davon 2 Nachkomastellen.

Bei den Positionen insgesamt fällt ALLES rein: Vorkomma, Nachkomma, 
Dezimalpunkt, Vorzeichen, Exponent

2.2 ist daher nicht sehr sinnvoll, denn alleine 1 Position brauchst du 
schon für den Dezimalpunkt. Noch 1 Nachkommastelle und du hast die 
Feldlänge von 2 Zeichen bereits erreicht.

Wenn du also eine Formatierung  ##.## haben willst, dann brauchst du 
eine Feldlänge von 5 Zeichen

   %05.2f

und dann klappts auch damit, das leere Vorkommastellen durch 0-en 
aufgefüllt werden.

von harald (Gast)


Lesenswert?

Super Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.