bcround
Description
Syntax
bcround( string $num, int $precision = 0, RoundingMode $mode = RoundingMode::HalfAwayFromZero ): string
Parameters
num
The value to round.
precision
The optional number of decimal digits to round to.
If negative, num is rounded to precision significant digits before the decimal point.
If positive, num is rounded to precision significant digits after the decimal point.
mode
Specifies the rounding mode.
Return
Returns a numeric string representing num rounded to the given precision.
Examples
1 · num · negative · high
<? $num = -1.5000; $return = bcround($num); var_dump($return);
string(2) "-2"
2 · num · negative · low
<? $num = -1.4999; $return = bcround($num); var_dump($return);
string(2) "-1"
3 · num · positive · low
<? $num = 1.4999; $return = bcround($num); var_dump($return);
string(1) "1"
4 · num · positive · high
<? $num = 1.5000; $return = bcround($num); var_dump($return);
string(1) "2"
5 · precision
<? $num = 12345.67890; for($i = -5; $i <= 5; ++$i) { $precision = $i; $return = bcround($num, $precision); var_dump($return); }
string(1) "0" string(5) "10000" string(5) "12000" string(5) "12300" string(5) "12350" string(5) "12346" string(7) "12345.7" string(8) "12345.68" string(9) "12345.679" string(10) "12345.6789" string(11) "12345.67890"
6 · mode
<? $array1 = [ RoundingMode::HalfAwayFromZero, RoundingMode::HalfTowardsZero, RoundingMode::AwayFromZero, RoundingMode::TowardsZero, RoundingMode::NegativeInfinity, RoundingMode::PositiveInfinity, RoundingMode::HalfEven, RoundingMode::HalfOdd ]; $array2 = [ -2.5000, -2.4999, -1.5000, -1.4999, 1.4999, 1.5000, 2.4999, 2.5000 ]; $precision = 0; foreach($array1 as $mode) { echo $mode->name . ":" . PHP_EOL; foreach($array2 as $num) { $return = bcround($num, $precision, $mode); var_dump($return); } echo PHP_EOL; }
HalfAwayFromZero: string(2) "-3" string(2) "-2" string(2) "-2" string(2) "-1" string(1) "1" string(1) "2" string(1) "2" string(1) "3" HalfTowardsZero: string(2) "-2" string(2) "-2" string(2) "-1" string(2) "-1" string(1) "1" string(1) "1" string(1) "2" string(1) "2" AwayFromZero: string(2) "-3" string(2) "-3" string(2) "-2" string(2) "-2" string(1) "2" string(1) "2" string(1) "3" string(1) "3" TowardsZero: string(2) "-2" string(2) "-2" string(2) "-1" string(2) "-1" string(1) "1" string(1) "1" string(1) "2" string(1) "2" NegativeInfinity: string(2) "-3" string(2) "-3" string(2) "-2" string(2) "-2" string(1) "1" string(1) "1" string(1) "2" string(1) "2" PositiveInfinity: string(2) "-2" string(2) "-2" string(2) "-1" string(2) "-1" string(1) "2" string(1) "2" string(1) "3" string(1) "3" HalfEven: string(2) "-2" string(2) "-2" string(2) "-2" string(2) "-1" string(1) "1" string(1) "2" string(1) "2" string(1) "2" HalfOdd: string(2) "-3" string(2) "-2" string(2) "-1" string(2) "-1" string(1) "1" string(1) "1" string(1) "2" string(1) "3"