Warum können Dezimalzahlen nicht genau binär dargestellt werden?

Es wurden mehrere Fragen zur Gleitkommadarstellung an SO gestellt. Die Dezimalzahl 0.1 hat beispielsweise keine exakte Binärdarstellung. Daher ist es gefährlich, sie mit dem Operator == mit einer anderen Gleitkommazahl zu vergleichen. Ich verstehe die Prinzipien der Gleitkommadarstellung.

Was ich nicht verstehe, ist, warum aus mathematischer Sicht die Zahlen rechts vom Komma "spezieller" sind als die links?

Zum Beispiel hat die Zahl 61.0 eine exakte binäre Darstellung, weil der ganzzahlige Teil jeder Zahl immer genau ist. Die Zahl 6.10 ist jedoch nicht exakt. Ich habe nur die Dezimalstelle verschoben und bin plötzlich von Exactopia nach Inexactville gegangen. Mathematisch sollte es keinen inneren Unterschied zwischen den beiden Zahlen geben - sie sind nur Zahlen.

Wenn ich dagegen die Dezimalstelle in die andere Richtung bewege, um die Zahl 610 zu erhalten, bin ich immer noch in Exactopia. Ich kann in diese Richtung weitermachen (6100, 610000000, 6100000000000) und sie sind immer noch genau, genau, genau. Sobald die Dezimalstelle eine Schwelle überschreitet, sind die Zahlen nicht mehr genau.

Was ist los?

Bearbeiten: Um das zu verdeutlichen, möchte ich mich von Diskussionen über Industriestandard-Darstellungen wie IEEE fernhalten und bei dem bleiben, was ich für den mathematisch "reinen" Weg halte. In der Basis 10 sind die Positionswerte:

... 1000  100   10    1   1/10  1/100 ...

In binärer Form wären sie:

... 8    4    2    1    1/2  1/4  1/8 ...

Es gibt auch keine willkürlichen Grenzen für diese Zahlen. Die Positionen nehmen nach links und rechts unendlich zu.

Antworten auf die Frage(20)

Ihre Antwort auf die Frage