Forum: Compiler & IDEs sprintf("%f", float)


von Gregor (Gast)


Lesenswert?

Hallo!
Ich sitze z.Z. an folgendem Problem fest:

  float x = 22031.06383;
  char sString[20];
  sprintf(sString, "%f", x);

sString ist anschließend "?"

Was muss ich tun, um den String (am besten mit 2) Nachkommastellen 
auszugeben?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

. das Manual (der avr-libc) lesen
. Mfile benutzen und die printf-Optionen auf Gleitkomma stellen
. -Wl,-u,vfprintf -lprintf_flt zu den Linkeroptionen hinzufügen

von johnny.m (Gast)


Lesenswert?

> Was muss ich tun, um den String (am besten mit 2) Nachkommastellen
> auszugeben?
Ich denke, Du willst x mit zwei Nachkommastellen ausgeben, und nicht den 
String (Strings haben keine "Nachkommastellen"). Wenn Du x ausgeben 
willst, musst Du die Anzahl der Vor- und Nachkommastellen angeben, also 
z.B.
1
sprintf(sString, "%-.5f", x);
Dann müsste (wenn mich meine Erinnerung nicht ganz täuscht) x mit 
Vorzeichen und 5 Nachkommastellen ausgegeben werden.

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.