如何在PHP中除数而不使用余数?
在PHP中如何除数而排除余数?只需将结果值转换为int如何在PHP中除数而不使用余数?,php,math,division,Php,Math,Division,在PHP中如何除数而排除余数?只需将结果值转换为int $n = (int) ($i / $m); 有趣的函数(取决于您想要实现什么,以及您是否希望划分负整数)有,和。在php中使用模: $n = $i % $m; 或者你可以直接做intval(13/2) 给出6对于大多数实际情况,公认的答案是正确的 然而,对于整数为64位宽的构建,并非所有可能的整数值都可以表示为双精度浮点;有关详细信息,请参阅我对已接受答案的评论 变化 $n = ($i - $i % $m) / $m; (代码取自Ki
$n = (int) ($i / $m);
有趣的函数(取决于您想要实现什么,以及您是否希望划分负整数)有,和。在php中使用模:
$n = $i % $m;
或者你可以直接做intval(13/2)
给出6对于大多数实际情况,公认的答案是正确的 然而,对于整数为64位宽的构建,并非所有可能的整数值都可以表示为双精度浮点;有关详细信息,请参阅我对已接受答案的评论 变化
$n = ($i - $i % $m) / $m;
(代码取自KingCrunch在另一个答案下的评论)将根据所需的舍入行为避免此问题(请记住,模运算符的结果可能是负数)。除了上面的决定,如
$result=intval($a/$b)
还有一种特殊情况:
如果需要整数除(不带余数)二次幂($b
是2^N
),可以使用按位右移操作:
$result = $a >> $N;
其中,$N是32位操作系统上从1到32的数字,或64位操作系统上从64到64的数字
有时它很有用,因为对于$b的情况,最快的决定是二的幂
还有一个反向(小心溢出!)操作,用于乘以2的幂:
$result = $a << $N;
$result=$aPHP7为这个名为intdiv
的函数提供了一个新的内置函数
例如:
$result = intdiv(13, 2);
本例中,$result
的值为6
您可以在中找到此功能的完整文档。您能澄清一下提醒是什么意思吗?Kartik:13/2=6余数1,因为两个平均分为十三个六次,总共剩下一个,哪一个是余数。Kartik开玩笑说请求者拼错了余数。-1-这不仅不能回答问题,还提供了问题特别要求省略的内容:余数。对于那些喜欢过度使用的人:它可以与模块$n=($i-$i%$m)/$m代码>:严格来说,这是个坏主意。虽然它适用于小值(包括所有32位整数),但浮点不能表示所有64位整数。如果$i
是2^54+2,$m
是2,则除法的结果不能是2^53+1,因为这不能表示为双精度浮点(我现在无法测试64位系统上的实际结果)。