Hallo, ich bekomme Gleitkommawerte als ASCII-Zeichen übergeben und soll sie in float-Variablen ablegen. Hierfür die Funktion strtof() zu verwenden scheidet in meinem Fall aus. Aufgrund hoher Wertebereiche meinte mein Chef ich soll mir die Werte (z.B. durch atof() ) als double-Werte liefern lassen. Mir ist klar, dass ein einfaches Float_wert = (float) double_wert dies tun würde. Was ich nur nicht verstehe ist, dass doch bei einem double-Wert überhaupt keine Nachkommastellen vorhanden sind. Wie soll ich denn da jemals den richtigen Wert erhalten?
brechpunkt schrieb: > dies tun würde. Was ich nur nicht verstehe ist, dass doch bei einem > double-Wert überhaupt keine Nachkommastellen vorhanden sind. Du verwechselst offenbar "double" (double precision floating point) mit etwas anderem.
float = wert mit komma, einfache genauigkeit, 16 bit
double = wert mit komma, doppelte Genauigkeit, 32 bit
byte, short, int, long = wert ohne Komma, 8,16,32,64 bit lang (x86)
>Übe Dich in Festkomma-Arithmetik - bis zum brechen ...
Bist du es verstanden hast, sollte genügen :)
Gruß Jonas
Wenn das Zeug schon in Form von ASCII-Fliesskommawerten reinkommt, dann ist das Festkommaarithmetik eher der falsche Ansatz.
Jonas Biensack schrieb: > float = wert mit komma, einfache genauigkeit, 16 bit > double = wert mit komma, doppelte Genauigkeit, 32 bit Und wenn du das jeweils mit 2 multiplizierst, dann stimmt es sogar. Zumindest der Länge nach, wenngleich nicht in der Bedeutung.
hmmmm.... verdammt. Ich habe nicht geschnallt, dass double ebenfalls ein Fließkomma-Wert ist. Ich danke euch. Jedoch allein schon das Gespärch mit meinem Chef hat mir wieder gezeigt, dass es oft ein großer Schuss nach hinten ist, wenn man den Chef in der Arbeit fragt. Um zu vermeiden danach nicht als gänzlicher Vollidiot da zu stehen, investiert man (ich) lieber doppelt so viel Zeit um in Google zu recherchieren oder in Foren zu fragen. Geht es da eigentlich nur mir so? Auch wenn es stimmt, dass das zu den basics gehört, möchte man solchen Gesprächen doch lieber aus dem Weg gehen. Und erst Recht bei der Gehaltsverhandlung hat man keine Lust sich soetwas noch mal anhören zu müssen.
A. K. schrieb: > Wenn das Zeug schon in Form von ASCII-Fliesskommawerten reinkommt, dann > ist das Festkommaarithmetik eher der falsche Ansatz. Nichts hindert Dich daran, aus einem String z.B. ein long zu machen.
A. K. schrieb: > Wenn das Zeug schon in Form von ASCII-Fliesskommawerten reinkommt, dann > ist das Festkommaarithmetik eher der falsche Ansatz. Sorry, seh ich komplett anders. Grad dann ist es einfach, die Zeichenkette gleich als Festkommazahl abzulegen. Nur falls du vor hast, wissenschaftliche Berechnungen durchzuführen, wären Fließkommazahlen unter Umständen sinnvoll. (Ob ein Mikrocontroller für wissenschaftliche Berechnungen die richtige Wahl ist, sei mal dahingestellt.) Für alles andere, insbesondere für zu verarbeitende Messwerte, eignen sich Festkommazahlen deutlich besser. Vor allem lassen sie sich um ein Vielfaches schneller verarbeiten. Und man vermeidet so tolle Fließkommaeffekte wie "1,2 / 3 = 0,399999999".
Gelbe Wanderameise schrieb: > Nichts hindert Dich daran, aus einem String z.B. ein long zu machen. Solange man nichts über die einlaufenden Zahlen weiss, ausser dass sie in Fliesskommadarstellung vorliegen, kann man guten Gewissens keine Festkommadarstellung empfehlen.
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.