PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

bcdiv> <bcadd
Last updated: Fri, 05 Sep 2008

view this page in

bccomp

(PHP 4, PHP 5)

bccompVergleich zweier Zahlen beliebiger Genauigkeit

Beschreibung

int bccomp ( string $left_operand , string $right_operand [, int $scale ] )

Vergleicht den left_operand mit dem right_operand und gibt das Ergebnis als Integer-Wert zurück.

Parameter-Liste

left_operand

Der linke Operand in Stringform.

right_operand

Der rechte Operand in Stringform.

scale

Der optionale scale -Parameter wird verwendet, um die Anzahl der Dezimalstellen nach dem Komma anzugeben, die für den Vergleich herangezogen werden sollen.

Rückgabewerte

Gibt 0 zurück, wenn beide Operatoren gleich sind, 1, wenn left_operand größer ist als right_operand , und andernfalls -1.

Beispiele

Beispiel #1 bccomp()-Beispiel

<?php

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

?>


add a note add a note User Contributed Notes
bccomp
frank at booksku dot com
04-Oct-2005 03:41
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;
}
?>
11-Feb-2005 02: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);
   }
}
?>

bcdiv> <bcadd
Last updated: Fri, 05 Sep 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites