>>3 HSP
#module
#defcfunc f3 double a, double b, \
local abs_a, local abs_b, local is_minus, local c, local d, local r

abs_a=absf(a)
abs_b=absf(b)
if a*b<0.0 : is_minus=1
c=int(abs_a/abs_b)
d=abs_a-abs_b*c
if d*2>=abs_b : c++ : d-=abs_b

r=abs_a-d
if is_minus : r=-r
if double(int(b))=b : r=int(r)
return r
#global

mes f3(123, 12)
mes f3(126, 12)
mes f3(-123, 12)
mes f3(-126, 12)
mes f3(1.234, 0.01)
mes f3(1.235, 0.01)