php 整数相除得到整数值

t9aqgxwy  于 2023-01-08  发布在  PHP
关注(0)|答案(9)|浏览(168)

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

>>> 8/3
2

但在PHP中,如果我用/将一个整数除以另一个整数,有时会得到一个浮点数:

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

我想用Python或C来做除法,这样8/3就等于2。我怎么用PHP来做呢?

jc3wubiy

jc3wubiy1#

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

<?php
$pos = 1;
$neg = -1;
$divisor = 2;

// No rounding (float division)
var_dump($pos / $divisor);          //  0.5 (float)
var_dump($neg / $divisor);          // -0.5 (float)

// Round toward zero (like C integer division)
var_dump((int)($pos / $divisor));   //  0 (int)
var_dump((int)($neg / $divisor));   //  0 (int)

// Round half away from zero
var_dump(round($pos / $divisor));   //  1 (float)
var_dump(round($neg / $divisor));   // -1 (float)

// Round down
var_dump(floor($pos / $divisor));   //  0 (float)
var_dump(floor($neg / $divisor));   // -1 (float)

# And on PHP 7 you can round toward zero with intdiv():
var_dump(intdiv($pos, $divisor));   //  0 (int)
var_dump(intdiv($neg, $divisor));   //  0 (int)  Rounded toward zero

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

h5qlskok

h5qlskok2#

(int)(1700000 / 300000);

使用类型转换。

roqulrg3

roqulrg33#

对于PHP版本7 =〉intdiv(a,b)
对于小于7的版本(如5.6)=〉(int)floor(abs(a/b))

mitkmikd

mitkmikd4#

从PHP 7开始,我们可以使用intdiv内置函数来获取整数值:

intdiv(8,3); // 2

对于PHP的早期版本,我们可以使用round()函数来获得整数舍入值:

round(8 / 3); // 3

或者我们可以使用floor()函数来获得一个整数值:

floor(8 / 3); // 2
6xfqseft

6xfqseft5#

在PHP 7中,有一个intdiv函数可以完全按照您的要求执行操作。
用法:

intdiv(8, 3);

返回2

fquxozlt

fquxozlt6#

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 manual

pbpqsu0x

pbpqsu0x7#

用这个...

intval(1700000 / 300000 )...

这返回整数值。

cgvd09ve

cgvd09ve8#

对于PHP 7,请尝试intdiv()函数:
***语法:***int intdiv($dividend, $divisor)

<?php           
           $dividend = 19; 
           $divisor = 3;  
           echo intdiv($dividend, $divisor); 
           ?>

对于较早版本的PHP:

<?php
     // Convert $total_minutes to hours and minutes.

         $total_minutes = 640;
         $minutes = $total_minutes % 60;
         $hours = ($total_minutes - $minutes) / 60;

         echo "Time taken was $hours hours $minutes minutes";
         ?>
j2cgzkjk

j2cgzkjk9#

您可以通过添加以下内容来使用短格式|0到结束
8/3| 0

相关问题