Pac0
0
Q:

javascript modulo

// The JS % operater is REMAINDER not MODULO
// For modulo behaviour use
function mod(n, m) {
  return ((n % m) + m) % m;
}
0
x = a % b // % is modulo
0
function mod(n, a, b) {
	n = n | 0;
	a = a | 0;
	b = b | 0;
	let rem;
	if (a < 0 || b < 0) {
		const places = (b - a);
		rem = (n - a) % (places + 1);
		rem = rem < 0 ? (rem + (places + 1)) : rem === 0 ? 0 : rem;
		return rem - (places - b);
	}
	if (n === b) return n;
	if (n === b + 1) return a;
	if (n === a - 1) return b;
	rem = n % (b || 1);
	rem = rem < a ? (rem + b) : rem === 0 ? 0 : rem;
	return rem;
}

mod(1, 1, 5); // 1
mod(0, 1, 5); // 5
mod(0, -1, 5); // 0
mod(-2, -1, 5); // 5
-1
 var myNum = 10 / 4;       // 2.5
 var fraction = myNum % 1; // 0.5
 myNum = -20 / 7;          // -2.857142857142857
 fraction = myNum % 1;     // -0.857142857142857
-1

New to Communities?

Join the community