📅  最后修改于: 2023-12-03 15:29:10.023000             🧑  作者: Mango
在 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_EVEN
和 PHP_ROUND_HALF_ODD
都采用了银行家舍入法,但前者会向最接近的偶数舍入,后者则会向最接近的奇数舍入,因此 $even
的值为 2,而 $odd
的值为 3。
综上所述,我们可以根据具体需求来选择合适的舍入方式和规则,从而得到相应的舍入结果。