Problém s funkciou Trunc je ten, že Ty používaš ako parameter typ Real a nie Extended...
skúsil som Tvoju hodnotu -16,275 previesť Tvojim postupom cez funkciu Trunc a výsledok je naozaj -16274...function Trunc ( const Number : Extended ) : Integer;
avšak ak použijem ako vstupný parameter hodnotu nie Real ale Extended - funkcia Trunc "zázračne" vráti hodnotu -16275
var
X: Extended;
Y: Integer;
begin
X := StrToFloat(Edit1.Text);
Y := Trunc(X*1000);
Label1.Caption := IntToStr(Y);
end;