Der folgende Code klappt: komma=10*0.01; dtostrf (komma, 6, 3, texte); lcd_writetext (texte); // Eigen, tut was es soll => Ausgabe: 0.100 mit char texte[10]; double komma; So, jetzt wird's komisch: komma=10/100; dtostrf (komma, 6, 3, texte); lcd_writetext (texte); // Eigen, tut was es soll => Ausgabe 0.000 Wo ist da mein Brett vor'm Kopf?
also mit der Funktion dtostrf hat dein Problem nichts zu tun. Du berechnest komma mittels einer Division zweier Integer-Konstanten. Das Ergebnis einer Integer-Division ist ebenfalls ein Integer-Wert und damit gehen eventuelle Nachkommastellen verloren. funktionieren würde: komma = 10.0/100.0; oder komma = 10/100.0; oder komma = 10.0/100; oder ganz simpel: komma = 0.1;
Ich sag's ja "Brett". Casten würde ja auch helfen. Argh! Danke!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.