<?php function roundUp(float $num, int $precision): float { assert($precision > 0); $mul = [pow(10.0, $precision), 1.0 / (2 * pow(10.0, $precision - 1))]; return ($num * $mul[0] + $mul[1]) / $mul; } $as = [8.784512605042, 8.781512605042, 10.44445]; foreach ($as as $a) { //echo '#1: ' . number_format(number_format($a, 3), 2) . PHP_EOL; //echo '#2: ' . round(($a * 100 + 0.5) / 100.0, 2) . PHP_EOL; echo roundUp($a, 2) . PHP_EOL; }
You have javascript disabled. You will not be able to edit any code.