Skip to content

JavaScript % (modulo) gives a negative result for negative numbers

According to Google Calculator (-13) % 64 is 51.

According to Javascript (see this JSBin) it is -13.

How do I fix this?

Answer

Number.prototype.mod = function (n) {
  return ((this % n) + n) % n;
};

Taken from this article: The JavaScript Modulo Bug