Debug modu(x, 0) will give 0
Debug modu(x, -y) will give 0... nop : will give same as modu(x, y)
Code: Select all
Procedure modu(x, n)
Protected r ; (thanks to STARGÅTE)
If n > 0
r = x % n
If x < 0 And r
If n > 0
r + n
Else
r - n
EndIf
EndIf
EndIf
ProcedureReturn r
EndProcedure
Procedure aDiv(a, b)
Protected r = a / b
If a < 0
If r < 0
r - 1
Else
r + 1
EndIf
EndIf
ProcedureReturn r
EndProcedure