在JavaScript中,我如何得到:

一个给定整数除另一个整数的整数倍是多少? 其余的呢?


当前回答

const idivmod = (a, b) => [a/b |0, a%b];

还有一项关于这个问题的提案 模量和附加整数数学

其他回答

var remainder = x % y;
return (x - remainder) / y;

您可以使用parseInt函数来获得截断的结果。

parseInt(a/b)

要得到余数,使用mod操作符:

a%b

parseInt有一些陷阱字符串,以避免使用基数参数以10为基数

parseInt("09", 10)

在某些情况下,数字的字符串表示可以是科学符号,在这种情况下,parseInt将产生错误的结果。

parseInt(100000000000000000000000000000000, 10) // 1e+32

这个调用的结果是1。

计算页数可以一步完成: Math.ceil (x / y)

ES6引入了新的数学。trunc方法。这允许修复@MarkElliot的答案,使其适用于负数:

var div = Math.trunc(y/x);
var rem = y % x;

注意,Math方法与位运算符相比有一个优势,那就是它们处理大于231的数字。

你也可以使用三元来决定如何处理正整数值和负整数值。

var myInt = (y > 0) ? Math.floor(y/x) : Math.floor(y/x) + 1

如果这个数字是正数,就没有问题。如果这个数字是负数,它会加1,因为数学。地板处理否定。