Zitat:
aber sollte das nicht für eine Nachkommastelle trotzdem funktionieren?
Du machst da einen Denkfehler.
4.6 hat, dezimal ausgedrückt, zwar nur eine Nachkommastelle, binär ausgedrückt aber "unendlich" viele Nachkommastellen.
Wie sieht denn die Funktion CheckEquals aus?
Vorschlag: Benutze die Funktion SameValue aus System.Math.
Delphi-Quellcode:
var V:Double; Res:Boolean;
begin
V:=4.6;
Res:=SameValue(4.6,V); // Res ist True
end;