(PHP 8 >= 8.4.0)
BcMath\Number::compare — Compara dois números de precisão arbitrária
Compara dois números de precisão arbitrária. Este método se comporta como o operador nave espacial.
num
scale
scale
especifica a escala a ser usada para comparação.
Se for null
, todos os dígitos são usados na comparação.
Retorna 0
se os dois números forem iguais,
1
se $this for maior que num
,
-1
cado contrário.
Este método lança uma exceção ValueError nos seguintes casos:
num
é string e não é uma string numérica BCMath bem formadascale
está fora do intervalo válidoExemplo #1 Exemplo de BcMath\Number::compare() quando scale
não é especificado
<?php
$number = new BcMath\Number('1.234');
var_dump(
$number->compare(new BcMath\Number('1.234')),
$number->compare('1.23400'),
$number->compare('1.23401'),
$number->compare(1),
);
?>
O exemplo acima produzirá:
int(0) int(0) int(-1) int(1)
Exemplo #2 Exemplo de BcMath\Number::compare() com especificação explícita de scale
<?php
$number = new BcMath\Number('1.234');
var_dump(
$number->compare(new BcMath\Number('1.299'), 1),
$number->compare('1.24', 2),
$number->compare('1.22', 2),
$number->compare(1, 0),
);
?>
O exemplo acima produzirá:
int(0) int(-1) int(1) int(0)