sprintf liefert immer "inf)"

Gast #1544065
Lesenswert?

Hallo,

ich möchte eine Fließekommazahl als String ausgeben. Wenn ich in der 
Funktion die Zahl die augegeben werden soll, fix zuweise (Code-Beispiel 
1), funktioniert das auch. Will ich jedoch eine Zahl aus einer globalen 
Struktur mir ausgeben lassen, geht das nicht.

Code-Beispiel 1:

double zahl = 20.003;
unsigned char string_buffer[16];

sprintf(string_buffer, "%.3f", zahl);

lcd_puts(arial10, string_buffer);

--> Ergebnis: "20.003"


Code-Beispiel 2:

double zahl = glob_struktur.zahl;
unsigned char string_buffer[16];

sprintf(string_buffer, "%.3f", zahl);

lcd_puts(arial10, string_buffer);

--> Ergebnis: "inf("


Den String gebe ich auf einem LCD-Display aus.
Die Variable in der globalen Struktur ist auch vom Typ float.

Ich habe alle Linker-Optionen für die Verwendung der 
Float-Funktionalität von sprintf wie im Tutorial angepasst.

Hat sonst noch jemand eine Idee, was die Ursache für mein Problem sein 
könnte?

Schon mal danke im Vorraus.
Gast #1544887
Lesenswert?

Nachtrag:

Bei der Berechnung von glob_struktur.zahl ist ein Fehler unterlaufen:
Die Zahlen wurden dabei nicht als float interpretiert:
glob_struktur.zahl = 1/16;

Richtig:
glob_struktur.zahl = 1/16.0f;

Als Ergebnis kam da immer 0 raus und sprintf hat "inf" (-> 
infinitessimal) ausgegeben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren