如何在PHP中不用余数来分割数字?
如何划分数字,但排除在PHP中的剩余部分?
只需将结果值转换为int。
$n = (int) ($i / $m);
有趣的function(取决于你想要达到什么样的效果,如果你期望负数整数的话)是floor()
, ceil()
和round()
。
对于大多数实际的目的,接受的答案是正确的。
但是,对于整数为64位的构build,并不是所有可能的整数值都可以表示为双精度浮点数; 有关详情,请参阅我对已接受答案的评论。
一个变种
$n = ($i - $i % $m) / $m;
(在另一个答案中取自KingCrunch评论的代码)将根据所需的舍入行为(请记住模数运算符的结果可能为负)来避免此问题。
除了上面的$result = intval($a / $b)
之外的决定,还有一个特例:
如果你需要一个整数除法(没有余数)的两个幂( $b
是2 ^ N
),你可以使用按位右移操作:
$result = $a >> $N;
其中$ N是32位操作系统上从1到32的数字,或64位数字是64。
有时这很有用,因为对于$ b的情况来说,这是最快的决定。
而且还有一个倒退(小心由于溢出!)操作乘以二的幂:
$result = $a << $N;
希望这也有助于某人。
或者你可以做intval(13/2)给6
在php中使用modulo:
$n = $i % $m;