Я ищу элегантный способ округления десятичных чисел всегда вверх.Похоже, round(0.0045001, 5, PHP_ROUND_HALF_UP);
не возвращает то, что я ожидал, поэтому я придумал следующую функцию:
function roundUp($number, $precision) {
$rounded = round($number, $precision);
if ($rounded < $number) {
$add = '0';
for ($i = 1; $i <= $precision; $i++) {
if ($i == 1) $add = '.';
$add .= ($i == $precision) ? '1' : '0';
}
$add = (float) $add;
$rounded = $rounded + $add;
}
return $rounded;
}
Мне было интересно, есть ли другой, более элегантный способ добиться этого?
Ожидаемый результат: var_dump(roundUp(0.0045001, 5)) // 0.00451;