Die Lösung ist schon OK.
Dass man real-Werte nicht auf Gleichheit prüfen darf, liegt an den Rundungsfehlern, die aufgrund der Speichergrenzen bei Rechenoperationen entstehen.
Hier aber noch meine bevorzugte Lösung:
Code:
function FracEqual(x,y: double; Tolerance : double = 0.000001): boolean
begin
Result := (Abs(x-y) < Tolerance);
end;
CU, jj