note 105870 added to function.floor
| From: | dr+php at dakotaryan dot com | Date: | Wed, 21 Sep 2011 18:22:23 +0000 |
| Subject: | note 105870 added to function.floor | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-183330@lists.php.net to get a copy of this message | ||
The better way to round up/down to the nearest hundred (or thousand, etc.) is with roundBetter():
// This function is backwards compatible with round(),
// but provides an optional extra argument which,
// if set and not null, allows you to override the default
// rounding direction. See examples below.
function roundBetter($number, $precision = 0, $mode = PHP_ROUND_HALF_UP, $direction = NULL) {
if (!isset($direction) || is_null($direction)) {
return round($number, $precision, $mode);
}
else {
$factor = pow(10, -1 * $precision);
return strtolower(substr($direction, 0, 1)) == 'd'
? floor($number / $factor) * $factor
: ceil($number / $factor) * $factor;
}
}
// roundBetterUp(1999, -3) => 2000
// roundBetterUp(1001, -3) => 2000
function roundBetterUp($number, $precision = 0, $mode = PHP_ROUND_HALF_UP) {
return roundBetter($number, $precision, $mode, 'up');
}
// roundBetterDown(1999, -3) => 1000
// roundBetterDown(1001, -3) => 1000
function roundBetterDown($number, $precision = 0, $mode = PHP_ROUND_HALF_UP) {
return roundBetter($number, $precision, $mode, 'down');
}
----
Server IP: 69.147.83.197
Probable Submitter: 24.245.45.78
----
Manual Page -- http://www.php.net/manual/en/function.floor.php
Edit -- https://master.php.net/note/edit/105870
Del: integrated -- https://master.php.net/note/delete/105870/integrated
Del: useless -- https://master.php.net/note/delete/105870/useless
Del: bad code -- https://master.php.net/note/delete/105870/bad+code
Del: spam -- https://master.php.net/note/delete/105870/spam
Del: non-english -- https://master.php.net/note/delete/105870/non-english
Del: in docs -- https://master.php.net/note/delete/105870/in+docs
Del: other reasons-- https://master.php.net/note/delete/105870
Reject -- https://master.php.net/note/reject/105870
Search -- https://master.php.net/manage/user-notes.php