Hans35: Mathematische Werte Runden

Beitrag lesen

Hallo,

leider ist das Problem nicht so ganz einfach. Und zwar deshalb, weil das abschließende Dividieren (hier durch 100) im Dualsystem nicht glatt verläuft.
Beispiel:
Die Zahl
0.001101 (dual) = 0.203125 (dezimal) soll auf 2 Stellen (dezimal) gerundet werden.
Multiplikation mit 100:
10100.0101 (dual) = 20,3125 (dezimal)
Runden:
10100 (dual) = 20 (dezimal)
Die abschlißende Division durch 100 gibt nun einen unendlichen Dezimalbruch:
0.0011001100110011...(dual) =0,20 (dezimal)
Das Ergebnis in dualer Zahlendarstellung ist also nicht genau, sondern wird irgendwo abgschnitten.
Beim Rückumwandeln in Dezimal kommt dann evtl. nur 0,1999999999... heraus, das hängt davon ab wie der Browser programmiert ist.

Bei Euros ist es z.B. sicherer, alles durchgehend in ganzen Zahlen (Cent) zu rechnen und in die darzustellenden Ergebnisse als Zeichenkette den Punkt einzufügen, dann kann das nicht passieren.

Gruß
Hans35