(PHP 4, PHP 5, PHP 7, PHP 8)
round — 對(duì)浮點(diǎn)數(shù)進(jìn)行四舍五入
$val, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float
返回將 val 根據(jù)指定精度
precision(十進(jìn)制小數(shù)點(diǎn)后數(shù)字的數(shù)目)進(jìn)行四舍五入的結(jié)果。precision
也可以是負(fù)數(shù)或零(默認(rèn)值)。
val要處理的值。
precision可選的十進(jìn)制小數(shù)點(diǎn)后數(shù)字的數(shù)目。
If the precision is positive, val is
rounded to precision significant digits after the decimal point.
If the precision is negative, val is
rounded to precision significant digits before the decimal point,
i.e. to the nearest multiple of pow(10, -precision), e.g. for a
precision of -1 val is rounded to tens,
for a precision of -2 to hundreds, etc.
modeUse one of the following constants to specify the mode in which rounding occurs.
| 常量 | 說(shuō)明 |
|---|---|
PHP_ROUND_HALF_UP |
Rounds val away from zero when it is half way there,
making 1.5 into 2 and -1.5 into -2.
|
PHP_ROUND_HALF_DOWN |
Rounds val towards zero when it is half way there,
making 1.5 into 1 and -1.5 into -1.
|
PHP_ROUND_HALF_EVEN |
Rounds val towards the nearest even value when it is half way
there, making both 1.5 and 2.5 into 2.
|
PHP_ROUND_HALF_ODD |
Rounds val towards the nearest odd value when it is half way
there, making 1.5 into 1 and 2.5 into 3.
|
The value rounded to the given precision as a float.
示例 #1 round() 例子
<?php
var_dump(round(3.4));
var_dump(round(3.5));
var_dump(round(3.6));
var_dump(round(3.6, 0));
var_dump(round(5.045, 2));
var_dump(round(5.055, 2));
var_dump(round(345, -2));
var_dump(round(345, -3));
var_dump(round(678, -2));
var_dump(round(678, -3));
?>
以上例程會(huì)輸出:
float(3) float(4) float(4) float(4) float(5.05) float(5.06) float(300) float(0) float(700) float(1000)
示例 #2 How precision affects a float
<?php
$number = 135.79;
var_dump(round($number, 3));
var_dump(round($number, 2));
var_dump(round($number, 1));
var_dump(round($number, 0));
var_dump(round($number, -1));
var_dump(round($number, -2));
var_dump(round($number, -3));
?>
以上例程會(huì)輸出:
float(135.79) float(135.79) float(135.8) float(136) float(140) float(100) float(0)
示例 #3 mode 例子
<?php
echo 'Rounding modes with 9.5' . PHP_EOL;
var_dump(round(9.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(9.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_ODD));
echo PHP_EOL;
echo 'Rounding modes with 8.5' . PHP_EOL;
var_dump(round(8.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(8.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_ODD));
?>
以上例程會(huì)輸出:
Rounding modes with 9.5 float(10) float(9) float(10) float(9) Rounding modes with 8.5 float(9) float(8) float(8) float(9)
示例 #4 mode with precision examples
<?php
echo 'Using PHP_ROUND_HALF_UP with 1 decimal digit precision' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_UP));
echo PHP_EOL;
echo 'Using PHP_ROUND_HALF_DOWN with 1 decimal digit precision' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_DOWN));
echo PHP_EOL;
echo 'Using PHP_ROUND_HALF_EVEN with 1 decimal digit precision' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_EVEN));
echo PHP_EOL;
echo 'Using PHP_ROUND_HALF_ODD with 1 decimal digit precision' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD));
?>
以上例程會(huì)輸出:
Using PHP_ROUND_HALF_UP with 1 decimal digit precision float(1.6) float(-1.6) Using PHP_ROUND_HALF_DOWN with 1 decimal digit precision float(1.5) float(-1.5) Using PHP_ROUND_HALF_EVEN with 1 decimal digit precision float(1.6) float(-1.6) Using PHP_ROUND_HALF_ODD with 1 decimal digit precision float(1.5) float(-1.5)