bccomp

(PHP 4, PHP 5)

bccomp — Compare two arbitrary precision numbers

Описание

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

Compares the left_operand to the right_operand and returns the result as an integer.

Список параметров

left_operand

The left operand, as a string.

right_operand

The right operand, as a string.

scale

The optional scale parameter is used to set the number of digits after the decimal place which will be used in the comparison.

Возвращаемые значения

Returns 0 if the two operands are equal, 1 if the left_operand is larger than the right_operand , -1 otherwise.

Примеры

Пример #1 bccomp() example

<?php

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

?>

Коментарии

Improvement of functions bcmax() and bcmin() originaly written by frank at booksku dot com

<?php

function bcmax() {
 
$args func_get_args();
  if (
count($args)==0) return false;
 
$max $args[0];
  foreach(
$args as $value) {
    if (
bccomp($value$max)==1) {
     
$max $value;
    }
  }
  return 
$max;
}

function 
bcmin() {
 
$args func_get_args();
  if (
count($args)==0) return false;
 
$min $args[0];
  foreach(
$args as $value) {
    if (
bccomp($min$value)==1) {
     
$min $value;
    }
  }
  return 
$min;
}
?>
2009-03-11 08:35:09
http://php5.kiev.ua/manual/ru/function.bccomp.html
Автор:
Beware that negative zero does not compare equal to positive zero.
2010-02-17 00:04:46
http://php5.kiev.ua/manual/ru/function.bccomp.html
BEWARE! left and right operand is string!! so number in E-notation like 9.012E-6  need to be converted with sprintf('%F') to string
2018-02-20 00:01:27
http://php5.kiev.ua/manual/ru/function.bccomp.html
If you want to compare 2 decimals for equality, bccomp does not works as expected:

bccomp("1.000000000000000","0.999999999999999",2)

returns 1

Instead, use

bcsub("1.000000000000000","0.999999999999999",2) == 0
2024-12-08 11:15:55
http://php5.kiev.ua/manual/ru/function.bccomp.html

    Поддержать сайт на родительском проекте КГБ