sprintf liefert immer "inf)"

Gast #1544065
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
>double zahl = glob_struktur.zahl;
>--> Ergebnis: "inf("

Und was steht in glob_struktur.zahl?
Versuch doch mal:

glob_struktur.zahl= 10.0;
double zahl = glob_struktur.zahl;
Gast
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.