Forum: Mikrocontroller und Digitale Elektronik Kommazahlen mit printf double


von Checker (Gast)


Lesenswert?

Hallo

ich will mit printf eine double Zahl mit Nachkommastellen ausgeben.
über usart
Wie funktioniert das???

Bei mir kommt nur ein Fragezeichen anstelle des Wertes!

MfG
Checker

von Rufus T. Firefly (Gast)


Lesenswert?

Tja - dann poste doch mal Quelltext, der zeigt, wie Du printf()
aufrufst. Dann können wir Dir sagen, was Du möglicherweise falsch
machst ...

von Checker (Gast)


Lesenswert?

double x;
x= 1.05;

printf("x = %f", x);

von OldBug (Gast)


Lesenswert?

Compiler?

von Checker (Gast)


Lesenswert?

WINAVR GNU

von OldBug (Gast)


Lesenswert?

Dann könnte es daran liegen, daß Du eine mächtigere printf-lib
benötigst, schau mal in Mfile unter "Makefile -> printf() options".

von Checker (Gast)


Lesenswert?

# Additional libraries
#
# Minimalistic printf version
#LDFLAGS += -Wl,-u,vfprintf -lprintf_min
#
# Floating point printf version (requires -lm below)
#LDFLAGS +=  -Wl,-u,vfprintf -lprintf_flt
#
# -lm = math library
LDFLAGS += -lm


dies steht im Makefile

von OldBug (Gast)


Lesenswert?

Ja, und es ist alles auskommentiert.
Ich verweise ja nicht umsonst auf MFile!

Entweder benutzt Du MFile, oder Du musst eine dieser printf-Zeilen
entkommentieren (lustiges Wort).
Nutzt Du kein MFile, dann wirst Du Dich zwangsläufig mit Makefiles
beschäftigen müssen...

von Rufus T. Firefly (Gast)


Lesenswert?

Wenn für den Compiler double und float unterschiedliche Datentypen sind,
sollte auch der Formatstring von printf() entsprechend angepasst werden
- statt %f sollte dann %lf geschrieben 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.