一、%取余运算符
%是JS中常用的取余运算符,表示求两数相除后的余数。
let a = 10;
let b = 3;
let c = a % b;
console.log(c); // 1
上述代码中,10除以3,余数为1。
当被除数为负数时,%运算符也会返回负数的余数,如下代码:
let a = -10;
let b = 3;
let c = a % b;
console.log(c); // -1
上述代码中,-10除以3,余数为-1。
二、parseInt和parseFloat方法
除了%运算符,JS中还有两个方法可以用来取余数。
第一个方法是parseInt。
let a = 10.6;
let b = 3;
let c = parseInt(a / b);
console.log(c); // 3
上述代码中,我们先将a除以b得到一个非整数,然后用parseInt方法将其转换成整数,得到3。
第二个方法是parseFloat。
let a = 10.6;
let b = 3;
let c = parseFloat((a / b - parseInt(a / b)).toFixed(1));
console.log(c); // 0.6
上述代码中,我们先将a除以b得到一个非整数,然后减去其整数部分得到小数,再用toFixed方法将其保留一位小数,最后用parseFloat方法将其转换成小数,得到0.6。
三、Math.floor和Math.ceil方法
除了以上两种方法,JS中还有两个方法可以用来取余数,分别是Math.floor和Math.ceil。
Math.floor方法可以将一个数向下取整,得到比原数小的最大整数。
let a = 10.6;
let b = 3;
let c = Math.floor(a / b);
console.log(c); // 3
上述代码中,我们先将a除以b得到一个非整数,然后用Math.floor方法将其向下取整,得到3。
Math.ceil方法可以将一个数向上取整,得到比原数大的最小整数。
let a = 10.6;
let b = 3;
let c = Math.ceil(a / b);
console.log(c); // 4
上述代码中,我们先将a除以b得到一个非整数,然后用Math.ceil方法将其向上取整,得到4。
四、自定义函数实现取余
如果以上方法都不符合我们的需求,我们可以自定义一个函数来实现取余运算。
function modulus(a, b) {
if (b === 0) {
return NaN;
}
let r = a - b * Math.floor(a / b);
return r < 0 ? r + Math.abs(b) : r;
}
console.log(modulus(10, 3)); // 1
上述代码中,我们定义了一个modulus函数来实现取余运算,它的参数分别是被除数a和除数b。
首先,我们判断如果除数为0,则返回NaN。
然后,我们用公式a – b * Math.floor(a / b)求出余数r。
最后,我们判断如果r小于0,则加上除数的绝对值,即可得到正确的余数。
五、结语
本文详细介绍了JS中常用的取余方法,包括%取余运算符、parseInt和parseFloat方法、Math.floor和Math.ceil方法以及自定义函数实现取余。不同的方法适用于不同场景,通过掌握这些方法,可以更好地应对实际编程中的问题。