94 votes

Diviser un nombre entier et obtenir une valeur entière

Dans des langages comme C ou Python, si je divise un nombre entier par un nombre entier, j'obtiens un nombre entier :

>>> 8/3
2

Mais en PHP, si je divise un nombre entier par un autre nombre entier avec / Parfois, j'ai un flotteur :

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

J'aimerais faire une division comme en Python ou en C, de sorte que 8/3 soit égal à 2. Comment puis-je faire cela en PHP ?

105voto

iLaYa ツ Points 3887

Utiliser round() pour obtenir une valeur entière arrondie.

round(8 / 3); // 3

o

Utilice floor() fonction pour obtenir une valeur entière

floor(8 / 3); // 2

81voto

Marek Lisý Points 2072

En PHP 7, il y a intdiv qui fait exactement ce que vous voulez.

Utilisation :

intdiv(8, 3);

Renvoie à 2 .

26voto

S.P. Points 1756

Il n'y a pas d'opérateur de division des entiers en PHP. 1/2 donne la valeur flottante 0.5. La valeur peut être convertie en un entier pour l'arrondir vers le bas, ou la fonction round() permet un contrôle plus fin de l'arrondi.

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

Manuel PhP

9voto

bipen Points 21912

Utiliser cette....

intval(1700000 / 300000 )...

cela renvoie la valeur entière.

7voto

codeaamirkalimi Points 179

Pour PHP 7, essayez intdiv() Fonction :

Syntaxe : int intdiv($dividend, $divisor)

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

Pour les anciennes versions de 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";
         ?>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X