Forum: Mikrocontroller und Digitale Elektronik float -> str; CCS5.4; sprintf geht nicht.


von H. D. (lactobacillus)


Lesenswert?

Hallo,
ich versuche mit einem float einen string zu machen. Ich verwende 
CCS5.4, MSP430G2553 und sprintf.
1
#define BUF 16
2
char string1[BUF];
3
sprintf(string1,"%f5.2", 3.14159);

Das Ergebnis ist leider ".2f". Woran liegt es?

Bei AVR soll man float für sprintf aktivieren müssen. Könnte das hier 
bei CCS auch sein? Wie mach ich das?

von horny (Gast)


Lesenswert?

"%f5.2" eher "%5.2f" ???

von horny (Gast)


Lesenswert?

und 16 ist doch zu klein für ein float???

von horny (Gast)


Lesenswert?

ach, mit .2 könnts schon reichen...

von H. D. (lactobacillus)


Lesenswert?

@horny: Ist ein Tippfehler. Im Programm stehts richtig.

Wenn ich BUF auf 255 erhöhe, ist es noch immer das Gleiche.
1
#define BUF 255
2
char string1[BUF];
3
sprintf(string1,"%5.2f", 3.14159);

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sieh Dir Deine Compilereinstellungen an; vermutlich verwendest Du eine 
printf/scanf-Variante ohne floatingpoint-Unterstützung.

von H.D. (Gast)


Lesenswert?

@Rufus: Das war ja meine Vermutung, aber wie mache ich das bei CCS?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sieh in die Dokumentation, als Dunstkreis würde ich mal die verwendeten 
Runtimelibraries ansehen.

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.