|
bccomp
Compare two arbitrary precision numbers
(PHP 4, PHP 5)
Parameters
Return ValuesReturns 0 if the two operands are equal, 1 if the left_operand is larger than the right_operand, -1 otherwise. ExamplesExample 337. bccomp() example<?php Code Examples / Notes » bccomp11-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; } ?> |