📜  2 使用 php 进行十进制四舍五入(1)

📅  最后修改于: 2023-12-03 15:29:10.023000             🧑  作者: Mango

使用 PHP 进行十进制四舍五入

在 PHP 中,我们可以使用 round() 函数进行十进制数的四舍五入。该函数接收两个参数:要进行四舍五入的数值以及保留的小数位数。下面是一个简单的示例:

$num = 3.14159;
$roundedNum = round($num, 2);
echo $roundedNum; // 输出:3.14

在这个示例中,我们将 $num 四舍五入保留两位小数位,并将结果存储在 $roundedNum 变量中,最后将其输出。

除了 round() 函数外,PHP 还提供了一些其他的函数来进行舍入,如 ceil()floor()。这两个函数分别向上和向下取整,不考虑小数部分的值。

$num = 3.5;
$ceiledNum = ceil($num);
echo $ceiledNum; // 输出:4

$num = 3.5;
$flooredNum = floor($num);
echo $flooredNum; // 输出:3

需要注意的是,在进行四舍五入时,PHP 中的默认函数会采用“银行家舍入法”,准确来说是一种四舍六入五考虑的舍入规则。具体来说,如果小数位数后面的数字为5,则将前一位的数字向偶数舍入。例如:

$num1 = 1.225;
$num2 = 1.235;
$roundedNum1 = round($num1, 2);
$roundedNum2 = round($num2, 2);
echo $roundedNum1; // 输出:1.22
echo $roundedNum2; // 输出:1.24

在以上示例中,我们将两个数值保留两位小数位并进行四舍五入,其中 $num1 的第三位小数部分为 5,但 $num2 的第三位为 6,因此舍入的结果不同。

除了以上默认的舍入规则外,我们还可以通过第三个参数来指定舍入的规则。可用的规则有:

  • PHP_ROUND_HALF_UP - 四舍五入,接近正无穷大的一侧
  • PHP_ROUND_HALF_DOWN - 直接舍掉小数部分
  • PHP_ROUND_HALF_EVEN - 银行家舍入法
  • PHP_ROUND_HALF_ODD - 银行家舍入法,向下舍入时,保留奇数位

以下是一个使用 round() 函数和不同舍入规则进行舍入的示例:

$num = 2.5;
$up = round($num, 0, PHP_ROUND_HALF_UP);
$down = round($num, 0, PHP_ROUND_HALF_DOWN);
$even = round($num, 0, PHP_ROUND_HALF_EVEN);
$odd = round($num, 0, PHP_ROUND_HALF_ODD);

echo $up; // 输出:3
echo $down; // 输出:2
echo $even; // 输出:2
echo $odd; // 输出:3

在以上示例中,我们将 $num 进行整数舍入,并使用不同的舍入规则进行比较。其中,规则 PHP_ROUND_HALF_UP 会向正无穷大舍入,因此 $up 的值为 3;规则 PHP_ROUND_HALF_DOWN 直接舍弃了小数部分,因此 $down 的值为 2;规则 PHP_ROUND_HALF_EVENPHP_ROUND_HALF_ODD 都采用了银行家舍入法,但前者会向最接近的偶数舍入,后者则会向最接近的奇数舍入,因此 $even 的值为 2,而 $odd 的值为 3。

综上所述,我们可以根据具体需求来选择合适的舍入方式和规则,从而得到相应的舍入结果。