Alle Werte werden intern im Rechner im IEEE 754 Format umgewandelt. Dieses Format gibt es in 2 Varianten:
- einfache Genauigkeit
- doppelte Genauigkeit
Das Format besteht im wesentlichen aus 3 Komponenten:
- Vorzeichen
- Mantisse
- Exponent
Nun, der Fehler, den du beobachtest ereignet sich genau in diesem Format, oder genauer gesagt: In der Mantisse.
Wenn du jetzt Beispielsweise 0,1 aus unserem System in IEEE 754 zur Basis 2 umwandeln willst wirst du feststellen,
dass die 0,1 im Dualsystem eine Periode besitzt. Genau solch eine Periode erscheint auch in der Mantisse.
Da IEEE 754 aber in der Darstellung begrenzt ist, wird von dieser Periode hinten etwas "abgeschnitten" damit die
Zahlenfolge ins Raster passt (untere Schranke, obere Schranke).
Deswegen ist es auch nicht ratsam längere Nachkommastellen zu benutzen, da sonst die ganze Umwandlung verfälscht ist.
Hierfür muss man dann entweder spezielle Datentypen benutzen oder sich selber einen basteln bzw Funktionen dafür erfinden.
Ich hoffe dir jetzt etwas nachgeholfen zu haben.