Float zu Integer Darstellung

Gast #888911
Man analysiert den Algorithmus, überlegt sich die Funktions- und 
Wertebereiche von Funktionen, überlegt sich die Präzision und 
Genauigkeit jedes Rechenschritts und implementiert das dann.

Alternativ kann man hingehen und einfach irgendwie skalieren, rechnen 
und hoffen das etwas Brauchbares rauskommt.
#889018
Ein Beispiel, welches du selbst sicher schon hunderte Male
gemacht hast:

Du hast eine Anzahl von Geldbeträgen.
   €  3.75
   € 12.8
   €  8.45

Davon möchtest du die Summe, aber du möchtest nicht mit
Kommazahlen rechnen. Was tust du?
Nun, du rechnest nicht in Euro, sondern in Cent.

€3.75 sind 375 Cent. Mit den restlchen Beträgen verfährst du
genau gleich und erhältst

       375
      1280
       845
     -----
      1500

Die Summe betrrägt also 1500 Cent oder (zurückverwandeln) €15.00

In diesem Beispiel hat es ausgereicht auf Cent zu gehen um die
Kommazahlen zu vermeiden. Aber was, wenn du zb mit den Geldbeträgen
eine Prozentrechnung machen sollst. Du möchtest von jedem Betrag
zb 10% nehmen und die Summe dieser Prozentbeträge wissen

10% von 375 sind 37 (remember: Keine Kommazahlen!)
10% von 1280 sind 128
und 10% von 845 sind 84

in Summe       37
              128
               84
             ----
              149

Nun sollte aber laut Adam Riese dieses Ergebnis zum ersten Ergebnis
in einem bestimmten Zusammenhang stehen. 10% von 1500 sind also 149.
Nun das kann nicht stimmen, denn 10% von 1500 sind 150 und nicht 149.
Was ist das Problem? Das Problem war, dass du mit der Skalierung
auf Cent bei der Prozentrechnung nicht glücklich wirst, denn da
können 1/10 Cent entstehen. Deren Vernachlässigung hat dir in Summe
einen Fehler von immerhin 1 Cent eingebracht. D.h. obwohl eine
Skalierung von Euro auf Cent für die Berechnung der Summe ausreichend
war, ist sie dies nicht, wenn du mit Prozenten rumschmeist (und
sei froh, dass ich mit 10% noch human war. Ich hätte auch eine
schlimmere Porzentzahl nehmen können). Dafür wäre eine
Skalierung auf 1/100 oder vielleicht sogar 1/100 Cent angebracht.

Es hängt also davon ab
  * welche Berechnung du machen möchtest
  * welche Genauigkeit du anstrebst
  * wie groß die skalierten Zahlen werden dürfen
um zu entscheiden, welche Skalierung du benutzen willst.
Gast #889194
Hier hast du was:

http://de.wikipedia.org/wiki/Kettenbruch

Eine Skalierung mit dem optimalen Bruch erzielt man über Subtraktionen 
(Division) und Additionen (Multiplikation).

Das Verfahren findet z.B. auch in der Computergrafik beim Linienzeichnen 
mittels Bresenham-Verfahren eine praktische Anwendung (eine 
Interpretation). Der Endpunkt einer Geraden wird zuverlässig getroffen. 
Archimedes war ein cleveres Kerlchen...

Antwort schreiben

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