Remainder (%)

The remainder operator (%) returns the remainder left over when one operand is divided by a second operand. It always takes the sign of the dividend.

Note that while in most languages, '%' is a remainder operator, in some (e.g. Python, Perl) it is a modulo operator. For two values of the same sign, the two are equivalent, but when the dividend and divisor are of different signs, they give different results. To obtain a modulo in JavaScript, in place of a % n, use ((a % n ) + n ) % n.

Syntax

x % y

Examples

Remainder with positive dividend

 13 % 5  //  3
 1 % -2 //  1
 1 % 2  //  1
 2 % 3  //  2
5.5 % 2 // 1.5

Remainder with negative dividend

-13 % 5 // -3
-1 % 2  // -1
-4 % 2  // -0

Remainder with NaN

NaN % 2 // NaN

Remainder with Infinity

Infinity % 2 // NaN
Infinity % 0 // NaN
Infinity % Infinity // NaN

Specifications

Specification
ECMAScript Language Specification
# sec-multiplicative-operators

Browser compatibility

BCD tables only load in the browser

See also