Zwei Gleitkommazahlwerte zu auf Gleichheit zu überprüfen ist sinnlos. Durch die interne Darstellungs- und Berechungsweise kann es immer zu kleinen Abweichungen kommen, wie in deinem Fall. Deshalb kann es auch vorkommen, dass dir als Zahl bspw. nicht 0.0038 sondern 0.0037999999999 angezeigt wird.
Ablöse dürfte ein Vergleich mit einem gegebenen Abweichungsfaktor bringen:
Delphi-Quellcode:
function DoublesEqual(a, b: double): boolean;
const
epsilon = 0.000001;
begin
result := abs(a - b) < epsilon;
end;
Epsilon gibt dabei die Genauigkeit an, auf die du die Gleichheit überprüfen möchtest.
greetz
Mike