相关疑难解决方法(0)

82
推荐指数
7
解决办法
23万
查看次数

php中的整数除法

我正在寻找在php中进行整数除法的最快方法.例如,5/2应该是2和6/2应该是3,依此类推.如果我只是这样做,PHP将在第一种情况下返回2.5,我能找到的唯一解决方案是使用intval($my_number/2)- 这不是我想要的那么快(但给出了预期的结果).

任何人都可以帮我解决这个问题吗?

编辑:
感谢大家的想法,我使用rubber_boots的脚本postet测试其中一些10000000迭代,在这里你可以看到结果(3或4岁的macbook与2Ghz intel core 2 duo上的MAMP) :

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
Run Code Online (Sandbox Code Playgroud)

直到现在,位移是最快的方式,但是我会把这个问题留一天,看看是否有其他可能性...

EDIT2:
更新了结果,用PHP_ROUND_HALF_DOWN添加了round()(感谢Col._Shrapnel)

php math performance

23
推荐指数
3
解决办法
2万
查看次数