在JavaScript中,我如何得到:
一个给定整数除另一个整数的整数倍是多少? 其余的呢?
在JavaScript中,我如何得到:
一个给定整数除另一个整数的整数倍是多少? 其余的呢?
当前回答
ES6引入了新的数学。trunc方法。这允许修复@MarkElliot的答案,使其适用于负数:
var div = Math.trunc(y/x);
var rem = y % x;
注意,Math方法与位运算符相比有一个优势,那就是它们处理大于231的数字。
其他回答
我不是位运算的专家,但这里有另一种方法来获得整个数字:
var num = ~~(a / b);
这也适用于负数,而Math.floor()将以错误的方向舍入。
这似乎也是正确的:
var num = (a / b) >> 0;
function integerDivison(dividend, divisor){
this.Division = dividend/divisor;
this.Quotient = Math.floor(dividend/divisor);
this.Remainder = dividend%divisor;
this.calculate = ()=>{
return {Value:this.Division,Quotient:this.Quotient,Remainder:this.Remainder};
}
}
var divide = new integerDivison(5,2);
console.log(divide.Quotient) //to get Quotient of two value
console.log(divide.division) //to get Floating division of two value
console.log(divide.Remainder) //to get Remainder of two value
console.log(divide.calculate()) //to get object containing all the values
var remainder = x % y;
return (x - remainder) / y;
这里有一个方法。(就个人而言,我不会这样做,但认为这是一个有趣的方式来做的例子)上面提到的方式肯定是更好的,因为它调用多个函数,因此更慢,以及占用更多的空间在你的包。
函数intDivide(分子,分母){ 回归方法((分子/分母).toString () .split(“。”)[0]); } let x = intDivide(4,5); let y = intDivide(5,5); let z = intDivide(6,5); console.log (x); console.log (y); console.log (z);
const idivmod = (a, b) => [a/b |0, a%b];
还有一项关于这个问题的提案 模量和附加整数数学