PHP Conference Kansai 2025

bcdivmod

(PHP 8 >= 8.4.0)

bcdivmodDevuelve el cociente y el resto de un número de precisión arbitraria

Descripción

bcdivmod(string $num1, string $num2, ?int $scale = null): array

Devuelve el cociente y el resto de la división de num1 por num2.

Parámetros

num1

El dividendo, como una cadena.

num2

El divisor, como una cadena.

scale
Este parámetro se utiliza para establecer el número de dígitos después del punto decimal en el resultado. Si es null, se establecerá por defecto en la escala predeterminada establecida con bcscale(), o se utilizará el valor de la directiva INI bcmath.scale.

Valores devueltos

Devuelve un array indexado donde el primer elemento es el cociente en forma de string y el segundo elemento es el resto en forma de string.

Errores/Excepciones

Esta función lanza una excepción ValueError en los siguientes casos:

  • num1 o num2 no es una cadena numérica bien formada de BCMath.
  • scale está fuera del rango válido.

Esta función lanza una excepción DivisionByZeroError si num2 es 0.

Ejemplos

Ejemplo #1 Ejemplo de bcdivmod()

<?php
bcscale
(0);

[
$quot, $rem] = bcdivmod('5', '3');
echo
$quot; // 1
echo $rem; // 2

[$quot, $rem] = bcdivmod('5', '-3');
echo
$quot; // -1
echo $rem; // 2

[$quot, $rem] = bcdivmod('-5', '3');
echo
$quot; // -1
echo $rem; // -2

[$quot, $rem] = bcdivmod('-5', '-3');
echo
$quot; // 1
echo $rem; // -2
?>

Ejemplo #2 bcdivmod() con decimales

<?php
[$quot, $rem] = bcdivmod('5.7', '1.3', 1);
echo
$quot; // 4
echo $rem; // 0.5
?>

Ver también

  • bcdiv() - Divide dos números de precisión arbitraria
  • bcmod() - Obtiene el módulo de un número de precisión arbitraria
  • BcMath\Number::divmod() - Devuelve el cociente y el módulo de un número de precisión arbitraria
add a note

User Contributed Notes

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