求余和取模
在 JavaScript 中,%
运算符用于求余,而并没有专门用来取模的运算符。
JavaScript 中 %
的本质是
ts
function remainder(x: number, y: number) {
// Math.trunc() 方法会将数字的小数部分去掉,只保留整数部分。
// Math.trunc(-5.6) == -5
// Math.trunc(5.6) == 5
return x - y * Math.trunc(x / y);
}
console.log(remainder(5, 3)); // 2
console.log(remainder(-5, 3)); // -2
而取模运算符 mod
的本质是
ts
function mod(x: number, y: number) {
// Math.floor() 函数总是返回小于等于一个给定数字的最大整数。
// Math.floor(-5.6) == -6
// Math.floor(5.6) == 5
return x - y * Math.floor(x / y);
}
console.log(mod(5, 3)); // 2
console.log(mod(-5, 3)); // 1