Mousemovez doesn`t produce a float value it produces an integer. The value produced is set in increments/decrements of 120 - at least on all the machines I`ve tested on so you need to divide the result by 120.
do
cls
set cursor 0,0
print mousez()/120
print mousemovez()/120
loop
The helpfile for mousez() is innacurate if all machines produce the results in the same way.
This what your after?
sync on
sync rate 30
make object cube 1,1
move camera -10
unit=1
do
mz=mousez()/120
mmz=mousemovez()/120
if mmz<>0
newunit=unit*mmz
else
newunit=0
endif
noadjust=0
if finalpos+newunit=>3 then finalpos=3 : noadjust=1
if finalpos+newunit=<-3 then finalpos=-3 : noadjust=1
if noadjust=0 then finalpos=finalpos+newunit
position object 1,object position x(1),finalpos,object position z(1)
set cursor 0,0
print mz
print mmz
sync
loop