(sorry here is whole program) Win64 target! (on Win32 it works as expected for me) var c: currency; begin c:=922337203685.47; writeln(c:18:4,' = ', ' Trunc(c*10000)=', Trunc(c*10000)); c:=-92233720368547; writeln(c:18:4,' = ', ' Trunc(c*10000)=', Trunc(c*10000)); end.