Ответ 1
используйте round()
функцию, чтобы получить целочисленное округленное значение.
round(8 / 3); // 3
или
Используйте floor()
функцию для получения целочисленного значения
floor(8 / 3); // 2
В таких языках, как 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)
используйте это....
intval(1700000 / 300000 )...
это возвращает целочисленное значение.
(int)(1700000 / 300000);
использовать литье типов.
Существует несколько способов выполнения целочисленного деления в 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)
для непосредственного выполнения целочисленного деления. Это эквивалентно (int)($p / $q)
на PHP 5.
Вы можете использовать короткую форму, добавив | 0 в конец
8/3 | 0
Для версии PHP 7 => intdiv(a,b)
И для версий менее 7 (например, 5.6) => (int)floor(abs(a/b))
Для 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";
?>