note 107134 deleted from ref.bc by danbrown

From: Date: Tue, 10 Jan 2012 20:16:12 +0000
Subject: note 107134 deleted from ref.bc by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-185550@lists.php.net to get a copy of this message
Note Submitter: Studio85.pl ---- I've modified functions that was originally written by "Alix Axel" - coppied from: http://stackoverflow.com/questions/1642614/how-to-ceil-floor-and-round-bcmath-numbers Code: <?php /** * Round fractions up * BC MATH (Binary Calculator - numbers of any size and precision, represented as strings) * * @param string $number * @return string */ function bcceil($number) { $number = trim($number, '.0'); if (strpos($number, '.') !== false) { if ($number[0] != '-') { return bcadd($number, 1, 0); } return bcsub($number, 0, 0); } return $number; } /** * Round fractions down * BC MATH (Binary Calculator - numbers of any size and precision, represented as strings) * * @param string $number * @return string */ function bcfloor($number) { $number = trim($number, '.0'); if (strpos($number, '.') !== false) { if ($number[0] != '-') { return bcadd($number, 0, 0); } return bcsub($number, 1, 0); } return $number; } /** * Rounds a bc-string-value half up * BC MATH (Binary Calculator - numbers of any size and precision, represented as strings) * * @param string $number * @param integer $precision (default:0) * @return string */ function bcround($number, $precision = 0) { $number = trim($number, '.0'); if (strpos($number, '.') !== false) { if ($number[0] != '-') { return bcadd($number, '0.' . str_repeat('0', $precision) . '5', $precision); } return bcsub($number, '0.' . str_repeat('0', $precision) . '5', $precision); } return $number; } ?>

« previous php.notes (#185550) next »