long zu float - kompliziert

Gast #863461
Lesenswert?

Hallo zusammen,

ich möchte eine long-Zahl in float umwandeln, und das mit folgenden 
Gegebenheiten:

In long steht 25000007. Die 7 ist aber die erste Stelle rechts von 
Komma.
Der Wert in long entspricht also '2500000,7'.

Da ich diesen Wert mit printf über RS232 übertragen will, suche ich eine 
Möglichkeit den long-Wert nach float zu konvertieren.

Bin für Anregungen dankbar!
#863495
Lesenswert?

Es wäre sehr hilfreich, wenn du deine Programmmierumgebung mitgeteilt 
hättest (Assembler, C, Basic, LISP?). Unter C kann man natürlich einfach 
mit 0.1 multiplizieren, das führt zu einer impliziten Typumwandlung.

Wenn du den Wert aber nur über die Schnittstelle schicken willst, ist 
eine Umwandlung in float allerdings überflüssig. Wahlweise:
- in einen String umwandeln, Dezimalpunkt einfügen, ausgeben.
- zwei neue Variablen nehmen, einen mit Wert / 10, den anderen mit dem 
Rest und die entsprechend ausgeben.

Am anderen Ende der Übertragung merkt ja keiner, dass das gar kein float 
war.
Gast #863508
Lesenswert?

Kann ein Single (32Bit) den Wert 2500000,7 genau darstellen? Single hat 
24 signifikante Bits!
Ich würde den Long durch 10 dividieren und ganzzahlig ausdrucken, dann 
den Rest nach dem Komma drucken.

Gruß

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