Du scheinst es nicht ganz zu verstehen, Computerzahlen sind NICHT exakt, das ist technisch unmöglich, du kannst keine nicht-periodische Zahl mit unendlich Nachkommastellen, wie es nun mal die irrationalen Zahlen sind, mit endlich vielen Informationen in den PC übertragen, d.h. bei deiner Distanz-Berechnung treten schon die ersten Ungenauigkeiten auf.
Auch wird var nicht mit deiner gewünschten Exaktheit gespeichert, sondern nur mit einer Genauigkeit von 0.001.
Um dein Problem zu lösen: Ändere deinen Code in folgenden:
while(position > 0.5)
{
position = vec_dist(zwei.x,test_train.x);
vec_set(temp.x, zwei.x); //
vec_sub(temp.x,test_train.x); // from the vec_to_angle example
vec_to_angle(test_train.pan,temp.x); // from the vec_to_angle example
c_move(test_train,vector(0.1,0,0), NULL, IGNORE_PASSABLE| GLIDE);
wait(1);
}