Forum: Mikrocontroller und Digitale Elektronik sprintf Fixed Point


von Sebastian____ (Gast)


Lesenswert?

Hallo,
ich möchte eine Int16 Zahl wo die letzen beiden stellen die genauigkeit 
hinter dem komma sind per printf ausgeben.
Wie kann ich ein eine Ausgabe erreichen wo zb. aus 12345 -> 123,45 wird.
Ich möchte KEIN float verwenden.
Es würde so gehen:
1
sprintf("%d,%d", 12345/100, 12345-(12345/100));
Gibt es eventuell eine bessere Lösung?

MfG,
Sebastian

von Klaus W. (mfgkw)


Lesenswert?

1
sprintf("%d,%d", 12345/100, 12345%100);

Falls es wirklich die letzten beiden dezimalen Stellen sind, und nicht 
die letzten binären.

von Karl H. (kbuchegg)


Lesenswert?

% wurde ja schon behandelt.
1
 sprintf("%d,%02d", 12345/100, 12345%100);

Es ist wichtig, sprintf anzuweisen führende Nullen im Nachkommaanteil 
einzubauen.   23.5 ist was anderes als 23.05

von Klaus W. (mfgkw)


Lesenswert?

ach so ja, die 02 hatte ich unterschlagen; dachte ihm ginge es nur
um den Ausdruck als solchen.

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.