International PHP Conference Munich 2025

BcMath\Number::compare

(PHP 8 >= 8.4.0)

BcMath\Number::compareComparar dos números de precisión arbitraria

Descripción

public BcMath\Number::compare(BcMath\Number|string|int $num, ?int $scale = null): int

Comparar dos números de precisión arbitraria. Este método se comporta de manera similar al operador spaceship.

Parámetros

num
El valor al que comparar.
scale
Especifica el scale a utilizar para la comparación. Si null, todos los dígitos son utilizados en la comparación.

Valores devueltos

Devuelve 0 si los dos números son iguales, 1 si $this es mayor que num, de lo contrario -1.

Errores/Excepciones

Este método lanza una ValueError en los siguientes casos:

  • num es un string y no es una cadena numérica BCMath bien formada
  • scale está fuera del rango válido

Ejemplos

Ejemplo #1 Ejemplo de BcMath\Number::compare() cuando scale no está 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),
);
?>

El resultado del ejemplo sería:

int(0)
int(0)
int(-1)
int(1)

Ejemplo #2 Ejemplo de BcMath\Number::compare() especificando scale explícitamente

<?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),
);
?>

El resultado del ejemplo sería:

int(0)
int(-1)
int(1)
int(0)

Ver también

  • bccomp() - Compara dos números de precisión arbitraria
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top