为了账号安全,请及时绑定邮箱和手机立即绑定

整数除以JavaScript中的余数?

整数除以JavaScript中的余数?

波斯汪 2019-08-29 09:08:35
整数除以JavaScript中的余数?在JavaScript中,我如何获得:给定整数进入另一个整数的整数倍?剩下的?
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

对于某些数字y和一些除数,x将quotient(quotient)和remainder(remainder)计算为:

var quotient = Math.floor(y/x);var remainder = y % x;


查看完整回答
反对 回复 2019-08-29
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

我不是按位运算符的专家,但这是获得整数的另一种方法:

var num = ~~(a / b);

这也适用于负数,而Math.floor()在错误的方向上。

这似乎也是正确的:

var num = (a / b) >> 0;


查看完整回答
反对 回复 2019-08-29
?
倚天杖

TA贡献1828条经验 获得超3个赞

我在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%。也请记住,他们都是不一致Math.floor的时候a/b<0 && a%b!=0。



查看完整回答
反对 回复 2019-08-29
  • 3 回答
  • 0 关注
  • 459 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信