Registriert seit: 31. Okt 2003
Ort: Hamburg
42 Beiträge
|
Re: Real, Single, Double = ungenau!?
7. Apr 2005, 11:54
Hallo,
solche Zahlen haben nichts mit Integern zu tun, die interne Darstellung ist vollkommen anders. Aber du kannst es dir (sehr simpel) so vorstellen:
Im Dezimalsystem steht direkt hinter dem Komma die Zehntelstelle, danach kommt die Hundertstel usw. also 10 hoch -1, 10 hoch -2 ...
Im Binärsystem ist es eigentlich genauso: Hinter dem Komma (wo immer das auch steht bzw. sich gedacht wird) steht die Halbstelle (2 hoch -1), danach folgt die Vietelstelle (2 hoch -2) usw.
Jetzt kannst du auch schon sehen, warum ein Computer solche Probleme mit 0.1 (dezimal!) hat: Versuche mal, diesen Wert durch die Summe binärer Bruchzahlen darzustellen. Das artet aus! Und es gelingt dir nie! Du kannst dich nur dem Wert nähern. Und das ist die Ursache für das Problem hier.
Wenn man einen Datentyp mit sehr vielen Binärstellen nimmt, kann man noch einigermaßen annähern, aber irgendwann kommt der Darstellungsfehler durch.
Auf Computern werden solche Bruchzahlen so dargestellt, dass man einige Bits für die Dimension benutzt (also 2 hoch x) und den Rest für die eigentliche Zahl, wobei man definiert, dass diese immer als 0.yyyyy dargestellt wird. Das "0." kann man dann also weglassen.
Einige Bits werden auch benutzt, um besondere Zahlen zu kennzeichnen, wie "Unendlich" oder "NotANumber" (heisst wirklich so!), oder Sonderbedingungen in der dargestellten Zahl.
Bis dann
Peter
Peter Rehders Man sollte niemanden ernst nehmen, der sich ernst nimmt.
|