• 日常搜索
  • 百度一下
  • Google
  • 在线工具
  • 搜转载

PHP round、ceil和floor:使用哪一个?

许多大大小小的程序都需要我们处理数字。php 中有两种定义数字的方法。它们可以是浮点数或整数。我们还可以使用字符串来表示非常大的数字。您可以在本关于PHP 中的整数、浮点数和数字字符串的教程中了解有关这些数据类型以及它们之间的转换的更多信息。

PHP round、ceil和floor:使用哪一个?  第1张PHP PHP 整数、浮点数和数字字符串 Monty Shokeen

在这里,我们的重点将放在一些与整数和浮点数相关的函数上。我们将在本教程中讨论floor()ceil()和。round()

定义

让我们从所有函数的目的开始。

  1. floor():此函数将浮点数向下舍入到前面的整数。例如,5.2 变为 5,8.9 变为 8。

  2. ceil():此函数将浮点数向上舍入为整数。例如,5.2 变为 6,8.9 变为 9。

  3. round():此函数返回已向上或向下舍入并近似为指定精度的浮点数。如果不指定任何精度,它将四舍五入到最接近的整数:5.2 变为 5,8.9 变为 9。

请记住,这些函数的返回值在数学上将是整数,但它们仍然是浮点数据类型。

你应该使用哪一个?

所有功能在我们将在下面介绍的特定情况下都很有用:

PHPfloor()对比 PHPceil()

您处理只需要使用整数的情况时, floor()and函数很有用。ceil()考虑以下两个示例:

假设您必须编写一个程序来确定将一些鸡蛋运送到市场所需的容器数量。我们在这里受到两个限制。首先,容器不能是分数。其次,我们需要运送所有的鸡蛋。这意味着我们将需要一个完整的容器,即使它没有完全装满。所以我们应该使用ceil().

<?php

$egg_count = 510;
$container_capacity = 50;

$containers_needed = ceil($egg_count/$container_capacity);

echo $containers_needed;
// 11

?>


考虑另一种情况,您必须确定有多少人可以完全吃够可用的食物。在这种情况下,您只需要在您确定可以为他们提供可用食物而无需额外订购任何东西的情况下邀请他们。我们将不得不忽略不能喂饱成年人的剩余食物。所以我们应该使用floor().

<?php

$burger_count = 110;
$burgers_per_person = 3;

$persons_fed = floor($burger_count/$burgers_per_person);

echo $persons_fed;
// 36

?>


PHPround()

PHPround()函数不同于floor()并且ceil()因为它把我们带到最接近的整数(当没有指定精度时)而不是总是向上或向下舍入。它需要三个参数:

  1. 您要四舍五入的数字。

  2. 四舍五入的精度。默认值为 0,表示小数点后没有数字。

  3. 对中间数字进行四舍五入的模式,例如 3.5、2.5 和 -4.5。

此函数通常用于在我们不需要完全精度的日常情况下简化数字。从科学上讲,我们还可以round()用来消除计算所增加的额外虚假精度,而不是这些计算中使用的数据精度。

<?php

$people_count = 13097824;

$car_count = 3987;

function make_approximations($number, $digits) {
    if ($digits < 0) {
        return round($number, $digits)/10**abs($digits);
    } else {
        return round($number, $digits);
    }
}

echo 'There are approximately '.make_approximations($people_count, -6).' million people in our city.';
// There are approximately 13 million people in our city.

echo 'Around '.make_approximations($car_count, -3).' thousand cars pass this intersection everyday.';
// Around 4 thousand cars pass this intersection everyday.

$plot_length = 22.03;
$plot_width = 20.18;

echo 'Our plot is around '.make_approximations($plot_length*$plot_width, 2).' sq.m. in area.';
// Our plot is around 444.57 sq.m. in area.
?>


简而言之,在日常生活中,round()在数字的确切值不重要并且我们需要一个易于记忆的近似值的情况下,使用是很有帮助的。

最后的想法

在本教程中,我们简要讨论了如何使用floor()ceil()round()floor()当您总是想获得下一个最小整数时,该函数很有用,ceil()当您想获得下一个最大整数时很有用。round()函数用于以指定的精度四舍五入到最接近的数字(整数或其他数字)。


文章目录
  • 定义
  • 你应该使用哪一个?
    • PHPfloor()对比 PHPceil()
    • PHPround()
  • 最后的想法