Integer als Ergebnis mit Float berechnen

Gast #1213400
unsigned long int ist_frequenz;
float ist_frequ_tmp;

ist_frequenz=freq_overfl_cnt_tmp*(unsigned long int)0xFFFF;
ist_frequenz+= (unsigned long int)TCNT1_tmp-20;


ist_frequ_tmp=(float)ist_frequenz / (float)8000000;

ist_frequ_tmp = 1/ist_frequ_tmp;
>>ist_frequenz=ist_frequ_tmp*32;<<
--------

Hallo,
ich habe oben geposteten Code. Sobald die mit ">>...<<" markierte Zeile 
eingefügt wird, wird der Code plötzlich 4-fach so groß wie zuvor -> also 
hoher Rechenaufwand für die Berechnung.
Es bringt auch nichts mit casten etc. deshalb denke ich dass irgendwo 
ein grundsätzlicher Fehler vorliegt, aber WO?
Für nen Tipp wäre ich dankbar!
Gast
Gast wrote:
> Es bringt auch nichts mit casten etc. deshalb denke ich dass irgendwo
> ein grundsätzlicher Fehler vorliegt, aber WO?
> Für nen Tipp wäre ich dankbar!

Dein absolut grundsätzlicher Fehler: Floats. Floats sind so ein 
Spielzeug, das viele Spielkinder anzieht und dass viele auf Biegen und 
Brechen benutzen wollen. Eigentlich braucht kein Schwein 
Fließkommazahlen, selbst moderne Sternwarten kommen komplett ohne aus.
Gast
Ja, das ist mir klar. Grundsätzlich versuche ich floats auch zu umgehen, 
aber hier häng ich grad irgendwie und mir fällt keine nicht-float-Lösung 
ein....

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.