在JavaScript中,我如何得到:
一个给定整数除另一个整数的整数倍是多少? 其余的呢?
在JavaScript中,我如何得到:
一个给定整数除另一个整数的整数倍是多少? 其余的呢?
当前回答
这里有一个方法。(就个人而言,我不会这样做,但认为这是一个有趣的方式来做的例子)上面提到的方式肯定是更好的,因为它调用多个函数,因此更慢,以及占用更多的空间在你的包。
函数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);
其他回答
计算页数可以一步完成: Math.ceil (x / y)
var remainder = x % y;
return (x - remainder) / y;
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
这里有一个方法。(就个人而言,我不会这样做,但认为这是一个有趣的方式来做的例子)上面提到的方式肯定是更好的,因为它调用多个函数,因此更慢,以及占用更多的空间在你的包。
函数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);
我在Firefox上做了一些速度测试。
-100/3 // -33.33..., 0.3663 millisec
Math.floor(-100/3) // -34, 0.5016 millisec
~~(-100/3) // -33, 0.3619 millisec
(-100/3>>0) // -33, 0.3632 millisec
(-100/3|0) // -33, 0.3856 millisec
(-100-(-100%3))/3 // -33, 0.3591 millisec
/* a=-100, b=3 */
a/b // -33.33..., 0.4863 millisec
Math.floor(a/b) // -34, 0.6019 millisec
~~(a/b) // -33, 0.5148 millisec
(a/b>>0) // -33, 0.5048 millisec
(a/b|0) // -33, 0.5078 millisec
(a-(a%b))/b // -33, 0.6649 millisec
以上是基于每种方法的1000万次试验。
结论:使用(a/b>>0)(或(~~(a/b))或(a/b|0))可获得20%左右的效率提升。还要记住,它们都与数学不一致。地板,当a/b<0 && a%b!=0。