Nja, de Debugger zeigt die Werte nicht immer "optimal" an, ganz kleine Zahlen rundet der auch schonmal zu einer "glatten" 0
und vorallem mit "defekten" Werten kommt der nicht unbedingt klar. (wer konnt auch ahnen, daß sowas mal passieren könnte)
Ist das denn wirklich eine 0.000000000000000... ?
Zumindest sieht man im Stack an der Stelle (BP+8) zweimal "00000000"
Was gibt der Code denn aus, wenn du ihn in deine Funktion einfügst?
Delphi-Quellcode:
var
X: Int64 absolute Value;
begin
ShowMessage(IntToHex(X, 16));
(PS: Strg+C funktioniert im Quellcode, in Compiler-/Debuggermeldungen und sogar in den Dialogen/Fehlermeldungen)
Der gibt garnichts aus, nur die
Exception tritt wieder auf. Allerdings wird die Funktion in der Folge noch mehrfach aufgerufen und dabei erscheinen auch Msg-Boxes mit "0000000000000000" (ohne
Exception).
PS: Im Quelltext schon, das übrige geht zumindest in meinem Delphi hier nicht.