note 96703 added to function.round
| From: | sonicpr at bol dot com dot br | Date: | Fri, 12 Mar 2010 03:33:59 +0000 |
| Subject: | note 96703 added to function.round | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-166943@lists.php.net to get a copy of this message | ||
Problems with 2 decimal places (http://docs.sun.com/source/806-3568/ncg_goldberg.html):
<?php
function myround($n,$p=0) {
$d=pow(10,$p);
return floor(0.00000001 + (($n>0)?+0.5:-0.5) + $d*$n)/$d;
}
echo round(9.5), ' => ', myround(9.5), "\n"; // 10 => 10
echo round(9.95,1), ' => ', myround(9.95,1), "\n"; // 10 => 10
echo round(9.995,2), ' => ', myround(9.995,2), "\n"; // 9.99 => 10
echo round(9.9995,3), ' => ', myround(9.9995,3), "\n"; // 10 => 10
echo round(9.99995,4), ' => ', myround(9.99995,4), "\n"; // 10 => 10
echo round(-9.5), ' => ', myround(-9.5), "\n"; // -10 => -10
echo round(-9.95,1), ' => ', myround(-9.95,1), "\n"; // -10 => -10
echo round(-9.995,2), ' => ', myround(-9.995,2), "\n"; // -9.99 => -10
echo round(-9.9995,3), ' => ', myround(-9.9995,3), "\n"; // -10 => -10
echo round(-9.99995,4), ' => ', myround(-9.99995,4), "\n"; // -10 => -10
echo round(8.155, 2), ' => ', myround(8.155, 2), "\n"; // 8.15 => 8.16
echo round(141.075, 2), ' => ', myround(141.075, 2), "\n"; // 141.07 =>
141.08
/*
PHP 5.2.6-1+lenny6 with Suhosin-Patch 0.9.6.2 (cli) (built: Feb 9 2010 03:05:13)
Copyright (c) 1997-2008 The PHP Group
*/
?>
----
Server IP: 69.147.83.197
Probable Submitter: 201.15.204.19
----
Manual Page -- http://www.php.net/manual/en/function.round.php
Edit -- https://master.php.net/note/edit/96703
Del: integrated -- https://master.php.net/note/delete/96703/integrated
Del: useless -- https://master.php.net/note/delete/96703/useless
Del: bad code -- https://master.php.net/note/delete/96703/bad+code
Del: spam -- https://master.php.net/note/delete/96703/spam
Del: non-english -- https://master.php.net/note/delete/96703/non-english
Del: in docs -- https://master.php.net/note/delete/96703/in+docs
Del: other reasons-- https://master.php.net/note/delete/96703
Reject -- https://master.php.net/note/reject/96703
Search -- https://master.php.net/manage/user-notes.php