valor por para numeros numero numerico niños natural mayor float entre enteros entero ejemplos divisor divisiones dividir dividendo decimales convertir con como array php

php - por - Divide un entero y obtén un valor entero



int to float php (8)

En lenguajes como C o Python, si divido un entero por un entero, obtengo un entero:

>>> 8/3 2

Pero en PHP, si divido un entero por otro entero con / , a veces obtengo un float:

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

Me gustaría hacer una división como en Python o C, para que 8/3 sea 2. ¿Cómo puedo hacer eso en PHP?


En PHP 7, hay intdiv función intdiv haciendo exactamente lo que quieres.

Uso:

intdiv(8, 3);

Devuelve 2 .


Hay varias formas de realizar la división entera en PHP. El idioma no tiene un operador para la división de enteros, pero hay varias opciones para redondear el cociente de punto flotante a un entero:

<?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

En PHP 7 puede usar intdiv para realizar directamente la división de enteros. Esto es equivalente a (int)($p / $q) en PHP 5.


No hay operador de división de enteros en PHP. 1/2 produce el flotador 0.5. El valor se puede convertir en un entero para redondearlo hacia abajo, o la función round () proporciona un control más preciso sobre el redondeo.

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

Manual de php


Para PHP versión 7 => intdiv(a,b)

Y para versiones menores de 7 (como 5.6) => (int)floor(abs(a/b))


Puedes usar la forma corta agregando | 0 al final

8/3 | 0


use la función round() para obtener un valor redondeado de entero.

round(8 / 3); // 3

o

Use la función de floor() para obtener un valor entero

floor(8 / 3); // 2


utilizar esta....

intval(1700000 / 300000 )...

Esto devuelve el valor entero.


(int)(1700000 / 300000);

utilizar el tipo de fundición.