Ich habs jetzt nicht getestet, aber ich bin mir ziemlich sicher, dass
0.3 und
0.3 ohne die Anwendung arithmetischer Operationen die selbe interne Repräsentation haben

.
Beispiel (wie gesagt, ungetestet):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var a, b, c: double; begin a := 0.3; b := 0.3; c := a-b; end; |
Intern würde
0.3 afaik durch
0 01111101 00110011001100110011010(IEE 754) o.Ä. repräsentiert werden (statt
double habe ich hier einfach mal
float genommen).
Bei der Subtraktion müsste also trotz alledem
0.0 herauskommen.
Ich gehe einfach mal davon aus, dass es so ist, dass in deinen beiden
double-Variablen nicht wirklich
0.3 drinsteht und daher das von
Gammatester beschriebene Problem auftritt.