Das ist ein Rundungsfehler, den ich auch schon mal hatte. Ich hab das damals ungefähr so gelöst:
Delphi-Quellcode:
function geraderunden(X:real): real;
begin
Result := strtofloat(floattostr(X));
end;
procedure TForm1.Button1Click(Sender: TObject);
var h,z,anfang:double;
begin
z:=9*(1/24);
anfang:=7*(1/24);
h:=(z-anfang) / (1/24);
h := geraderunden(h);
showmessage('fliesskomma: ' + floattostr(h) + chr(13) + 'trunc: ' + inttostr(trunc(h)));
end;
(Ich weiss, dass das nicht besonders schön ist, aber es funktioniert.)