X will change after 23 frames if the movement continues
look at some code with your parameters:

Var
xf,yf:real;
xi,yi:integer;
?¢_¬¶
xf:=0;
yf:=0;
...
xf := xf + Sin(5)*0,5; //xf:=0,0435
yf := yf + Cos(5)*0,5;//yf:=0,498
xi:=round(xf); //xi:=0
yi:=round(yf); //yi:=0

//on second pass
xf := xf + Sin(5)*0,5 ;//xf:=0,087
yf := yf + Cos(5)*0,5;//yf:=0,0996
xi:=round(xf); //xi:=0
yi:=round(yf); //yi:=1

//on 23 pass
xf := xf + Sin(5)*0,5 ;//xf:= 1,0005
yf := yf + Cos(5)*0,5 //yf:=11,454
xi:=round(xf); //xf:= 1
yi:=round(yf); //yi:=11


This way the movement is of real?¢_~s precision, we don?¢_~t sacrifice precision because we can?¢_~t use real?¢_~s in 2d, there the smallest thing is a pixel and you can?¢_Tt draw something which would have a coordinate of say 1.239. It has nothing to do with precision, DelphiX just didn?¢_Tt show you it?¢_Ts rounding.
The movement wouldn?¢_Tt be smooth only if you had a terrible framerate, a terrible resolution and the speed of movement would be 0.000000000001.