bccomp

(PHP 4, PHP 5, PHP 7)

bccomp Сравнение двух чисел произвольной точности

Описание

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

Сравнивает left_operand с right_operand и возвращает целочисленный результат.

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

left_operand

Левый операнд в виде строки.

right_operand

Правый операнд в виде строки.

scale

Необязательный аргумент scale задает количество цифр после десятичной точки, которое будет участвовать в сравнении.

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

Возвращает 0, если числа равны; 1, если left_operand больше, чем right_operand; -1, если меньше.

Примеры

Пример #1 Пример использования bccomp()

<?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

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