Quizás tengas el mismo nombre de variable gobal y de procedimiento y eso te esté confundiendo...
Si utilizas varables globales la recomendación es ponerles un prefijo para no mezclarlas con otras de ámbito más restringido
Por ejemplo "GLB_Precio".
Código Delphi
[-]
unit TEST;
var
Precio : double;
procedure PRUEBA;
var
Precio : double;
begin
Precio := 200;
end;
begin
Precio := 0;
Prueba;
ShowMessage(FloatToStr(Precio); end.