double in float casten

Gast #2638694
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?
#2638739
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
Gast #2638822
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.
Gast #2638851
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.
(Firma: guloshop.de) #2638856
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".

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.