USAGE: edit

MODULO a b 

DESCRIPTION: edit

Wrapper for MOD that handles errors like REMAINDER. Negligible values (compared to A and B) are rounded to zero.

MODULO is a function value.

ARGUMENTS: edit

  • a -- (Type: number money time)
  • b -- Absolute value will be used (Type: number money time)

(SPECIAL ATTRIBUTES) edit

  • catch

SOURCE CODE edit

modulo: func [
    {Wrapper for MOD that handles errors like REMAINDER. Negligible
^-^-values (compared to A and B) are rounded to zero.} 
    [catch] 
    a [number! money! time!] 
    b [number! money! time!] "Absolute value will be used" 
    /local r
][
    throw-on-error [
        any [number? a b: make a b] 
        r: mod a abs b 
        either any [a - r = a r + b = b] [make r 0] [r]
    ]
]