Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : BCMath Arbitrary Precision Mathematics Functions : bccomp

bccomp

Compare two arbitrary precision numbers (PHP 4, PHP 5)
int bccomp ( string left_operand, string right_operand [, int scale] )

Example 337. bccomp() example

<?php

echo bccomp('1', '2') . "\n";   // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1

?>

Code Examples / Notes » bccomp

11-feb-2005 10:03

Note that the above function defeats the purpose of BCMath functions, for it uses the 'conventional' < operator.
Instead, it should be:
<?php
function my_bccomp_zero($amount, $scale)
{
  if (@$amount{0}=="-")
  {
      return bccomp($amount, '-0.0', $scale);
  }
  else
  {
      return bccomp($amount, '0.0', $scale);
  }
}
?>


frank

I slapped together min() and max() functions using bccomp().  While min() and max() only take an arbitrary number of args (i.e. max(1, 5, 1235, 12934, 66)) bccomp only takes 2.
Note that this doesn't take into account $scale.
<?php
function bcmax() {
 $max = null;
 foreach(func_get_args() as $value) {
   if ($max == null) {
     $max = $value;
   } else if (bccomp($max, $value) < 0) {
     $max = $value;
   }
 }
 return $max;
}
function bcmin() {
 $min = null;
 foreach(func_get_args() as $value) {
   if ($min == null) {
     $min = $value;
   } else if (bccomp($min, $value) > 0) {
     $min = $value;
   }
 }
 return $min;
}
?>


Change Language


Follow Navioo On Twitter
bcadd
bccomp
bcdiv
bcmod
bcmul
bcpow
bcpowmod
bcscale
bcsqrt
bcsub
eXTReMe Tracker