在像C或Python这样的语言中,如果我将整数除以整数,我得到一个整数:
>>> 8/3
2
Run Code Online (Sandbox Code Playgroud)
但是在PHP中,如果我将整数除以另一个整数/,有时我会得到一个浮点数:
php > var_dump(6/3);
int(2)
php > var_dump(8/3);
float(2.6666666666667)
Run Code Online (Sandbox Code Playgroud)
我想像Python或C那样进行划分,因此8/3是2.我怎样才能在PHP中做到这一点?
iLa*_* ツ 84
使用round()函数获取整数舍入值.
round(8 / 3); // 3
Run Code Online (Sandbox Code Playgroud)
要么
使用floor()函数获取整数值
floor(8 / 3); // 2
Run Code Online (Sandbox Code Playgroud)
Mar*_*isý 57
在PHP 7中,有一个intdiv函数可以完全按照你的意愿执行.
用法:
intdiv(8, 3);
Run Code Online (Sandbox Code Playgroud)
退货2.
S.P*_*.P. 20
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)
Run Code Online (Sandbox Code Playgroud)
小智 6
(int)(1700000 / 300000);
Run Code Online (Sandbox Code Playgroud)
使用类型铸造.
您可以通过在末尾添加 |0 来使用简写形式
8/3|0
有几种方法可以在 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
Run Code Online (Sandbox Code Playgroud)
在 PHP 7 上,您可以使用它intdiv($p, $q)来直接执行整数除法。这相当于(int)($p / $q)在 PHP 5 上。
对于 PHP 7 尝试intdiv()功能:
句法:
int intdiv($dividend, $divisor)
<?php
$dividend = 19;
$divisor = 3;
echo intdiv($dividend, $divisor);
?>
Run Code Online (Sandbox Code Playgroud)
对于旧版本的 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";
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79743 次 |
| 最近记录: |