note 105870 deleted from function.floor by googleguy

From: Date: Wed, 16 Jan 2013 05:35:33 +0000
Subject: note 105870 deleted from function.floor by googleguy
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-193100@lists.php.net to get a copy of this message
Note Submitter: dr+php at dakotaryan dot com ---- The better way to round up/down to the nearest hundred (or thousand, etc.) is with roundBetter(): <?php // 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'); } ?>

« previous php.notes (#193100) next »