Zahlenkonvertierung int in pseudo-float

Gast #1802181
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??
#1802214
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

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