Я знаю, что это старая тема, однако она появляется в Google.Я расширю ответ Блейка Пламба относительно точности.
ceil(1024.321 * 100) / 100;
Умножение на 100 и деление на 100 работает только с сотыми долями.Это не точно для десятых, тысячных, ста тысячных и т. Д.
function round_up($number, $precision = 2)
{
$fig = pow(10, $precision);
return (ceil($number * $fig) / $fig);
}
Результаты:
var_dump(round_up(1024.654321, 0)); // Output: float(1025)
var_dump(round_up(1024.654321, 1)); // Output: float(1024.7)
var_dump(round_up(1024.654321, 2)); // Output: float(1024.66)
var_dump(round_up(1024.654321, 3)); // Output: float(1024.655)
var_dump(round_up(1024.654321, 4)); // Output: float(1024.6544)
var_dump(round_up(1024.654321, 5)); // Output: float(1024.65433)
var_dump(round_up(1024.654321, 6)); // Output: float(1024.654321)
Примечания:
Благодарим Джозефа МакДермотта и Джозефа за помощь в улучшении моего оригинального фрагмента.