Math round
(PHP 4, PHP 5, PHP 7, PHP 8)
round — Rounds a float
설명
round(int|float $num
, int $precision
= 0, int $mode
= PHP_ROUND_HALF_UP): float
num
의 반올림된 값을 지정된 precision
(소수점 뒤의 자릿수)로 반환합니다. precision
는 음수 또는 0일 수도 있습니다(기본값).
매개변수
num
- The value to round.
precision
- 반올림할 선택적 소수 자릿수입니다.
precision
가 양수이면num
은 소수점 이하precision
유효 자릿수로 반올림됩니다.precision
가 음수이면num
은 소수점 앞의precision
유효 자릿수로 반올림됩니다. 즉,pow(10, -precision)
의 가장 가까운 배수로 반올림됩니다.precision
가 -1인 경우num
은 십으로 반올림되고,precision
가 -2에서 수백인 경우 등입니다. mode
- 다음 상수 중 하나를 사용하여 반올림이 발생하는 모드를 지정합니다.
상수 설명 PHP_ROUND_HALF_UP
Rounds num
away from zero when it is half way there, making 1.5 into 2 and -1.5 into -2.PHP_ROUND_HALF_DOWN
Rounds num
towards zero when it is half way there, making 1.5 into 1 and -1.5 into -1.PHP_ROUND_HALF_EVEN
Rounds num
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 num
towards the nearest odd value when it is half way there, making 1.5 into 1 and 2.5 into 3.
반환 값
부동 소수점으로 지정된 precision
로 반올림된 값입니다.
변경 로그
버전 | 설명 |
---|---|
8.0.0 | num 은 더 이상 숫자 변환을 지원하는 내부 객체를 허용하지 않습니다. |
Examples
예제 #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));
?>
위의 예는 다음을 출력합니다.
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));
?>
위의 예는 다음을 출력합니다.
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));
?>
위의 예는 다음을 출력합니다.
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));
?>
위의 예는 다음을 출력합니다.
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)
기타
- ceil() - Round fractions up
- floor() - Round fractions down
- number_format() - Format a number with grouped thousands