note 98704 added to function.round

From: Date: Thu, 01 Jul 2010 19:45:48 +0000
Subject: note 98704 added to function.round
Groups: php.notes 
Request: Send a blank email to php-notes+get-170636@lists.php.net to get a copy of this message
I had problem with round() function I didn't gave me the same result in windows or on a linux server : round(4.725, 2); // gave me 4.72 on linux round(4.725, 2); // gave me 4.73 on windows The expected result was 4.73 Here my function to resolve my problem 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; } echo mround(4.725, 2); // Yes 4.73 ---- Server IP: 216.235.13.26 Probable Submitter: 74.59.61.62 ---- Manual Page -- http://www.php.net/manual/en/function.round.php Edit -- https://master.php.net/note/edit/98704 Del: integrated -- https://master.php.net/note/delete/98704/integrated Del: useless -- https://master.php.net/note/delete/98704/useless Del: bad code -- https://master.php.net/note/delete/98704/bad+code Del: spam -- https://master.php.net/note/delete/98704/spam Del: non-english -- https://master.php.net/note/delete/98704/non-english Del: in docs -- https://master.php.net/note/delete/98704/in+docs Del: other reasons-- https://master.php.net/note/delete/98704 Reject -- https://master.php.net/note/reject/98704 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#170636) next »