умножение на дробное число никогда не приведёт к резельтату 0 (если конечно одно из чисел уже не является нулем) самый простой -
function Test(start#,step#)
doExite=(star = 0) (или как там сравнить, забыл уже)
while (doExit)
if(start#>0)
start=start-step;
if(start<=0)
doExite=1
endif
else
start=start+step
if(start>=0)
doExite=1;
endif
endif
do
endfunction
Sgn (number) - всегда вроде было