note 107134 added to ref.bc

From: Date: Tue, 10 Jan 2012 09:06:22 +0000
Subject: note 107134 added to ref.bc
Groups: php.notes 
Request: Send a blank email to php-notes+get-185514@lists.php.net to get a copy of this message
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; } ?> ---- Server IP: 69.147.83.197 Probable Submitter: 153.19.129.211 ---- Manual Page -- http://www.php.net/manual/en/ref.bc.php Edit -- https://master.php.net/note/edit/107134 Del: integrated -- https://master.php.net/note/delete/107134/integrated Del: useless -- https://master.php.net/note/delete/107134/useless Del: bad code -- https://master.php.net/note/delete/107134/bad+code Del: spam -- https://master.php.net/note/delete/107134/spam Del: non-english -- https://master.php.net/note/delete/107134/non-english Del: in docs -- https://master.php.net/note/delete/107134/in+docs Del: other reasons-- https://master.php.net/note/delete/107134 Reject -- https://master.php.net/note/reject/107134 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#185514) next »