www.mikrocontroller.net

Forum: Compiler & IDEs Zahlenkonvertierung int in pseudo-float


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine Variable mit dem
Wertebereich 0.0-50.0
dies wird in 0.2er Schritten geändert

Den Wert der Variable habe ich in eine int Variable gesteckt (mit 10 
Multipliziert)
-> hat die Variable x den Wert 212, so bedeutet das 21.2 usw.

Die Ausgabe mache ich wie folgt:

int temp;
char Kommazahl[10];
char Zahl[10];
char x_char;


temp = x % 10;
itoa(temp,Kommazahl);

temp = x / 10;
itoa(temp,Zahl);
strcat(Zahl,".");
strcat(Zahl,Kommazahl);
strcpy(x_char,Zahl);

//
Die Ausgabe ist funktioniert soweit.

Kann ich es noch effektiver gestalten, oder ist es OK so??

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank schrieb:

> Kann ich es noch effektiver gestalten, oder ist es OK so??

Definiere 'effektiv'

Grundsätzlich kannst du es so machen.
Man könnte auch mit der komplette Zahl nur 1 itoa in einen String 
machen, dann den String an der vorletzten Stelle um 1 char 
auseinanderziehen und dann den '.' einschmuggeln. Dann muss man 
allerdings bei Zahlen kleiner 0 wieder aufpassen. Eventuell muss dann 
noch 1 Null davor.

Man könnte auch mit 1 einzigem sprintf arbeiten und alles in mehr oder 
weniger einem Rutsch machen.

Ist alles relativ.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.