在PHP中如何划分没有余数的数字?

时间:2011-04-26 23:28:37

标签: php math division

如何划分数字但不包括PHP中的余数?

6 个答案:

答案 0 :(得分:81)

只需将结果值转换为int。

$n = (int) ($i / $m);

有趣的功能(取决于你想要实现的目标,以及你希望负整数被分开)是floor()ceil()round()

答案 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的幂($b2 ^ 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;