note 23038 deleted from ref.bc by googleguy

From: Date: Tue, 22 Oct 2013 09:03:06 +0000
Subject: note 23038 deleted from ref.bc by googleguy
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-196857@lists.php.net to get a copy of this message
Note Submitter: benjcarson at digitaljunkies dot ca ---- In addition to my last note, here are a quick pair of functions to convert exponential notation values into bcmath-style number strings: // exp2int converts numbers in the // form "1.5e4" into strings function exp2int($exp) { list($mantissa, $exponent) = spliti("e", $exp); list($int, $dec) = split("\.", $mantissa); bcscale ($dec); return bcmul($mantissa, bcpow("10", $exponent)); } // float2exp converts floats into exponential notation function float2exp($num) { if (0 == $num) { return "0E1";} list($int, $dec) = split("\.", $num); // Extract sign if ($int[0] == "+" || $int[0] == "-") { $sign = substr($int, 0,1); $int = substr($int, 1); } if (strlen($int) <= 1) { // abs($num) is less than 1 $i=0; for ($i=0; $dec[$i]=='0' && $i < strlen($dec); $i++); $exp = -$i-1; $mantissa = substr($dec,$i,1).".".substr($dec,$i+1); } else { // abs($num) is greater than 1 $i=0; for ($i=0; $int[$i]=='0' && $i < strlen($int); $i++); $exp = strlen($int)-1 - $i; $mantissa = substr($int,$i,1).".".substr($int,$i+1).$dec; } return ($sign . $mantissa . "E" . $exp); }

« previous php.notes (#196857) next »