Hallo Hans,
wie Sebastian bereits geschrieben hat, gibt es wegen der binären Kodierung bei
allen RealTypen unvermeidbare Rundungsfehler. Das liegt in der Natur der Sache, denn es gibt
unendlich viele Reelle Zahlen, die wir mittels Single, Real48, Double oder Extended auf eine
endliche Menge binärer Darstellungen mit endlichen Ziffern abbilden.
Selbst die Dezimalzahl 0,1 läßt sich binär nicht exakt darstellen, wodurch bereits bei der Eingabe ein Rundungsfehler entsteht.
Dein Vorhaben läßt sich daher leider nicht realisieren. Wenn es Dir lediglich um die Anzeige der Ergebnisse mittels
ShowMessage(..)
geht, dann hilft nur das "Verstecken" der falschen Ziffern durch
Runden der Zahlen bzw. der Anzeige...
Wenn Du ausschließlich für
Windows programmierst und ein
32-Bit-Kompilat verwenden wills, würde ich Dir allerdings
Extended empfehlen, nicht Double: Damit hast Du einen wesentlich größeren Zahlenbereich, 3..4 Stellen mehr und damit weniger Rundungsfehler als bei Double.
Grüße, Andreas