Я не могу понять, как всегда округлить PHP. ceil()
был бы очевидным выбором, но мне нужна такая же функциональность, что round()
предоставляет второй параметр «точность». Вот пример:
// Желаемый результат: 6250 эхо раунд (6244,64, -2); // возвращает 6200 echo round (6244,64, -1); // возвращает 6240 echo ceil (6244.64) // возвращает 6245
Мне нужно, чтобы число всегда округлялось, чтобы я мог вычислять равный делитель на основе параметров для диаграммы.
Из комментария на http://php.net/manual/en/function.ceil.php :
Quick and dirty `ceil` type function with precision capability. function ceiling($value, $precision = 0) { return ceil($value * pow(10, $precision)) / pow(10, $precision); }
Вы можете разделить на 10, ceil (); а затем умножить на десять
echo 10*ceil($number/10);
Еще одно решение для потолка с точностью, без порога, похоже, работает 9 цифр с обеих сторон:
$v = 123400100100100101; $a1 = 444444444.4; $a2 = .04444444444; $b1 = 111111111.1; $b2 = .01111111111; echo $v . "\n"; for ($i = 0; $i < 18; $i ++) { $v = $v/10; for ($j = -9; $j < 10; $j++) { echo $i . ':' . $j . ":" . round($v + round($a1, $j + 1) + round($a2, $j + 1) - round($a1, $j) - round($a2, $j) + round($b1, $j + 1) + round($b2, $j + 1) - round($b1, $j) - round ($b2, $j), $j, PHP_ROUND_HALF_DOWN) . "\n"; } }