我正在寻找在php中进行整数除法的最快方法。例如,5 / 2应该是2,6 / 2应该是3,依此类推。如果我只是简单地这样做,php将在第一种情况下返回2.5,我唯一能找到的解决方案是使用intval($my_number/2)
- 这不是我想要的速度(但会得到期望的结果)。
我该怎么做?
编辑:
感谢大家提供的意见,我使用rubber_boots发布的脚本测试了其中一些意见,这里可以看到结果(在2Ghz英特尔Core 2 Duo MacBook上运行MAMP且已使用10000000次迭代)。
start (10000000)
(int)...: 2.26 sec
floor(): 4.36 sec
int_divide(): 2.86 sec
bit-shift: 1.45 sec //note: only works for divisions through powers of 2
intval(): 4.51 sec
round() with PHP_ROUND_HALF_DOWN: 5.48 sec
到目前为止,位移操作是最快的方式,但我会把这个问题保持开放状态一天,看看是否有其他可能性...
EDIT2:
更新了结果,使用了PHP_ROUND_HALF_DOWN进行四舍五入(感谢Col._Shrapnel)