除以整数并得到整数值

在像C或Python这样的语言中,如果我用一个整数除整数,我得到一个整数:

>>> 8/3 2 

但在PHP中,如果我用另一个整数除整数,有时会得到一个float:

 php > var_dump(6/3); int(2) php > var_dump(8/3); float(2.6666666666667) 

我想像Python或C那样做分工,所以8/3是2.我怎样才能在PHP中做到这一点?

使用round()函数来获得整数四舍五入的值。

 round(8 / 3); // 3 

要么

使用floor()函数来获取整数值

 floor(8 / 3); // 2 

在PHP 7中,有intdiv函数正在做你想要的。

用法:

 intdiv(8, 3); 

退货2

PHP中没有整数除法运算符。 1/2产生浮动0.5。 该值可以被转换为一个整数以将其向下舍入,或者round()函数可以更精确地控制舍入。

 var_dump(25/7); // float(3.5714285714286) var_dump((int) (25/7)); // int(3) var_dump(round(25/7)); // float(4) 

PhP手册

用这个….

 intval(1700000 / 300000 )... 

这将返回整数值。

 (int)(1700000 / 300000); 

使用types铸造。

有几种方法可以在PHP中执行整数除法。 该语言没有用于整数除法的运算符,但有几个选项可将浮点数商整数为整数:

 <?php $pos = 1; $neg = -1; $divisor = 2; // No rounding (float division) var_dump($pos / $divisor); // 0.5 var_dump($neg / $divisor); // -0.5 // Round toward zero (like C integer division) var_dump((int)($pos / $divisor)); // 0 var_dump((int)($neg / $divisor)); // 0 // Round half away from zero var_dump(round($pos / $divisor)); // 1 var_dump(round($neg / $divisor)); // -1 // Round down var_dump(floor($pos / $divisor)); // 0 var_dump(floor($neg / $divisor)); // -1 # And on PHP 7 you can round toward zero with intdiv(): var_dump(intdiv($pos, $divisor)); // 0 var_dump(intdiv($neg, $divisor)); // 0 Round toward zero 

在PHP 7上,您可以使用intdiv($p, $q)直接执行整数除法。 这相当于PHP 5上的(int)($p / $q)

您可以通过在末尾添加| 0来使用缩写forms

8/3 | 0