I\'m using PHP 5.2.13 on my linux server. I\'m getting weird error when rounding numbers. This is my test case:
@Shabbyrobe: your function is wrong: try to round this number with a scale of 2: 44069.3445
it should be 44069.35, but default php round()- and your Function returns 44069.34
Working code by a member of php.net:
function mround($number, $precision=0) {
$precision = ($precision == 0 ? 1 : $precision);
$pow = pow(10, $precision);
$ceil = ceil($number * $pow)/$pow;
$floor = floor($number * $pow)/$pow;
$pow = pow(10, $precision+1);
$diffCeil = $pow*($ceil-$number);
$diffFloor = $pow*($number-$floor)+($number < 0 ? -1 : 1);
if($diffCeil >= $diffFloor) return $floor;
else return $ceil;
}