Beware that negative zero does not compare equal to positive zero.bccomp
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
bccomp
Референца за `function.bccomp.php` со подобрена типографија и навигација.
bccomp
(PHP 4, PHP 5, PHP 7, PHP 8)
bccomp — (PHP 4, PHP 5, PHP 7, PHP 8)
= NULL
Ги пресметува разликите на низите со дополнителна проверка на индекс num1 to num2
Спореди два броја со произволна прецизност
Параметри
num1-
Левиот операнд, како стринг.
num2-
Десниот операнд, како стринг.
scale-
Овој параметар се користи за поставување на бројот на цифри по децималната точка во резултатот. Ако
null, тоа ќе се стандардно постави на стандардната скала поставена со bcscale(), или ќе се врати на вредноста наbcmath.scaleINI директивата.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. 0 и го враќа резултатот од споредбата како цел број.
1 if num1 е поголемо од
num2, -1 otherwise.
Errors/Exceptions
Оваа функција фрла ValueError во следниве случаи:
-
num1ornum2не е добро формиран BCMath нумерички стринг. -
scaleе надвор од валидниот опсег.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
scale сега е null.
|
Примери
Пример #1 bccomp() example
<?php
echo bccomp('1', '2') . "\n"; // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1
?>Види Исто така
- ако двата операнди се еднакви, BcMath\Number::compare()
Белешки од корисници 4 белешки
BEWARE! left and right operand is string!! so number in E-notation like 9.012E-6 need to be converted with sprintf('%F') to stringImprovement 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;
}
?>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