如何划分数字但不包括PHP中的余数?
答案 0 :(得分:81)
答案 1 :(得分:6)
对于大多数实际用途,接受的答案是正确的。
但是,对于整数为64位宽的构建,并非所有可能的整数值都可以表示为双精度浮点数;有关详细信息,请参阅我对已接受答案的评论。
的变体
$n = ($i - $i % $m) / $m;
(根据另一个答案从KingCrunch的评论中获取的代码)将避免此问题,具体取决于所需的舍入行为(请记住,模数运算符的结果可能是负数)。
答案 2 :(得分:6)
PHP 7有一个新的内置函数,名为intdiv
。
示例:
$result = intdiv(13, 2);
此示例中$result
的值为6
。
您可以在PHP documentation。
中找到此功能的完整文档答案 3 :(得分:0)
除上述$result = intval($a / $b)
之类的决定外,还有一个特例:
如果你需要一个整数除法(没有余数)乘以2的幂($b
是2 ^ N
),你可以使用按位右移操作:
$result = $a >> $N;
其中$ N在32位操作系统上为1到32,对于64位操作系统为64。
有时它很有用,因为对于$ b的情况,最快的决定是2的幂。
并且有一个向后的(因为溢出而要小心!)操作乘以2的幂:
$result = $a << $N;
希望这对某人也有帮助。
答案 4 :(得分:-1)
或者你可以做intval(13/2) 给出6
答案 5 :(得分:-9)
在php中使用modulo:
$n = $i % $m;