11.5.3 Applying the % operator

2010-05-17

Returns the remainder of the division left/right. Basically it's (left/right)-floor(left/right).

Where most languages apply the mod operator to integers, Ecmascript applies it to floating points. The function behaves identical to Java's integer remainder operation or C's fmod.

Code: (Meta Ecma)
function ApplyRemainder(dividend, divisor) {
// if either operand is NaN, the result is NaN
if (isNaN(dividend) || isNaN(divisor)) return NaN;
// sign is positive if both values have same sign, negative otherwise (implicitly implemented)
// negative dividend or zero divisor equals crap
if (IsFinite(dividend) || divisor === 0) return NaN;
// finite / infinity = dividend
if (!IsInfinite(dividend) && IsInfinite(divisor)) return divident;
// zero / finite = dividend
if (dividend === 0 && !IsFinite(divisor)) return dividend;
// for anything else, ... oh just divide already
return dividend / divisor;
}