www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kommazahl rechtsbündig auf Display


Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alle,

wie kann man denn eine Kommazahl rechtsbündig auf ein Display schreiben
und links die restlichen Felder des Arrays mit Leerzeichen auffüllen?
Gibt es dazu etwas zum Lesen oder eine Funktion??

Vielen Dank im Voraus

René

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rufus T. Firefly,

ich benutze einen ATMega128. Kennt der printf oder snprintf Befehle??

Ciao und danke für die schnelle Antwort.

René

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
äh ich meine natürlich: meine Display lib kennt nur "puts" und
"putc".
Man müsste sich es schon vorher zurechtbauen und dann nur noch aufs
Display schießen.

René

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sprintf/snprintf gehören in die Standard-Library des C-Compilers.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.