Re: Problem bei Kommastellen Kategorie: Programmierung (von ACU, http://www.roboterbastler.de - 25.03.2004 19:44) | ||
Als Antwort auf Re: Problem bei Kommastellen von Dietmar Weickert - 25.03.2004 18:46 | ||
| ||
Danke für die Hilfe! Ich habe es jetzt mit Hilfe str.putfloatf hinbekommen! MfG ACU > Hallo! > > Versuche einmal Folgendes: > > U1=ports.adc(0); > U1=U1/204.6; > U2= ... > > Auf diese Weise hast du auf jeden Fall Nachkommastellen in U1 und U2. > > Au�erdem köntest du die Funktion str.putfloatf versuchen. Da kannst du angeben, wie viele Nach- > kommastellen du sehen möchtest. Vielleicht handelt es sich um undokumentiertes "Feature" von > putfloat, immer auf 0 Nachkommastellen genau zu sein. (Da es sich um Inline-Funktionen handelt, > kann man das nicht gut nachvollziehen.) > > Zuletzt gibt es auch noch die Möglichkeit, die Formatierfunktionen von lcdext.c2 zu verwenden. Dort > gibt es die Möglichkeit, direkt aufs Display mit einer oder zwei Nachkommastellen auszugeben. Wenn > du eine andere Aufteilung zwischen Vor- und Nachkommastellen benötigst, hast du da auch die > Möglichkeit, aus dem Source einer dieser Funktionen eine neue nach deinen Bedürfnissen abzuleiten. > (Funktionieren alle nach demselben Schimmel, der Vorzeichentest könnte bei dir entfallen.) > > Beste Grü�e, > Dietmar. > > > > > Hallo ACU > > > > > > Nehme an das die AD-Ports Zahlen im Integerbereich ausgeben. Also wird auch nur ein Integer > > > übergeben. Stell dein Programm mal so um, dann sollte es funtzen. > > > > > > > > > U1=ports.adc(0)/204.6; > > > U2=ports.adc(1)/204.6; > > > > > > Gru� > > > Werner > > > > > > > > > > > > > Hallo! > > > > Ich habe folgendes Problem: > > > > Meine CC2 gibt die Kommastellen nicht an. Nur die Ganzzahlen. > > > > Was mache ich falsch? > > > > Hier der Quelltext: > > > > > > > > > > > > > > > > float U1; > > > > float U2; > > > > string Ausgabe1; > > > > string Ausgabe2; > > > > > > > > thread main > > > > { > > > > lcdext.init(); > > > > lcdext.clear(); > > > > hwcom.setspeed(5); > > > > hwcom.init(); > > > > loop > > > > { > > > > > > > > U1=(ports.adc(0)*5)/1023; > > > > U2=(ports.adc(1)*5)/1023; > > > > str.putfloat(Ausgabe1, U1); > > > > str.putfloat(Ausgabe2, U2); > > > > lcdext.line(1); > > > > lcdext.print(Ausgabe1); > > > > lcdext.line(2); > > > > lcdext.print(Ausgabe2); > > > > Ausgabe1=""; > > > > Ausgabe2=""; > > > > sleep 50; > > > > lcdext.clear(); > > > > lcdext.line(1); > > > > } > > > > > > Danke für die Antworten! > > Ich wei� nur nicht, wie das mit > > U1=ports.adc(0)/204.6; > > U2=ports.adc(1)/204.6; > > funktionieren soll (ich bekomme das gleiche Ergebniss wie vorher). > > > > Das Ziel von dem Programm ist eigentlich einfach, dass die Spannungen von den A/D Wandlern in V > > mit Kommastellen angezeigt werden! > > > > MfG ACU Meine Seite: http://www.roboterbastler.de | ||
Antwort schreiben Antworten: |