Kommazahl rechtsbündig auf Display

Gast #144589
Lesenswert?
• ▲
▼
In C formatiert man floating-Point-Ausgaben mit der dafür geeigneten
Funktion printf(). Diese benötigt zwar viel Speicher und ist daher bei
einfacheren Aufgaben besser nicht zu verwenden, aber hier ist sie
praktisch.

Mit dem Formatspezifizierer "%n.mf"
  n - Feldbreite
  m - Präzision (anzahl Nachkommastellen)

lässt sich so etwas hinbekommen.
Ist die Feldbreite länger als die resultierende auszugebende Zahl, so
wird rechtsbündig mit führenden Leerzeichen ausgegeben.

Beispiel

  printf("%10.2f", x);

Durch Voransetzen eines '-' vor die Feldbreite wird linksbündig
ausgegeben und mit folgenden Leerzeichen aufgefüllt.

  printf("%-10.2f", x);

Durch voransetzen einer 0 werden statt führender Leerzeichen führende
Nullen ausgegeben:

  printf("%010.2f", x);

(010 wird hier nicht als oktale Zahl interpretiert)

Diese Syntax kann auch bei nicht-floatingpoint-Zahlen und auch Strings
angewandt werden:

  printf("%08X", i);

  printf("%8d", i);

  printf("%13s", string);


Für die Ausgabe auf ein LC-Display erscheint der Gebrauch von
snprintf() (printf in längenbegrenzten Puffer) sinnvoll.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.