Devuelve el módulo de un número de precisión arbitraria

# BcMath\Number::mod

(PHP 8 >= 8.4.0)

BcMath\Number::mod — Devuelve el módulo de un número de precisión arbitraria

### Descripción

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

Devuelve el resto de la división de $this por `num`. Excepto si `num` es `0`, el resultado tiene el mismo signo que $this.

### Parámetros

`num`
  El divisor.
`scale`
  BcMath\Number::scale especificado explícitamente para los resultados del cálculo. Si `null`, el BcMath\Number::scale del resultado del cálculo será definido automáticamente.

### Valores devueltos

Devuelve el módulo en forma de un nuevo objeto BcMath\Number.

Cuando el BcMath\Number::scale del resultado se define automáticamente, se utiliza el mayor BcMath\Number::scale de los dos números utilizados para la operación de módulo.

Es decir, si los BcMath\Number::scale de dos valores son `2` y `5` respectivamente, el BcMath\Number::scale del resultado será `5`.

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

Este método lanza una DivisionByZeroError si `num` es `0`.

### Ejemplos

Ejemplo #1 Ejemplo de BcMath\Number::mod() cuando `scale` no está especificado

    <?php
    $number = new BcMath\Number('8.3');

    $ret1 = $number->mod(new BcMath\Number('2.22'));
    $ret2 = $number->mod('8.3');
    $ret3 = $number->mod(-5);

    var_dump($number, $ret1, $ret2, $ret3);
    ?>

El ejemplo anterior mostrará:

    object(BcMath\Number)#1 (2) {
      ["value"]=>
      string(3) "8.3"
      ["scale"]=>
      int(1)
    }
    object(BcMath\Number)#3 (2) {
      ["value"]=>
      string(4) "1.64"
      ["scale"]=>
      int(2)
    }
    object(BcMath\Number)#2 (2) {
      ["value"]=>
      string(3) "0.0"
      ["scale"]=>
      int(1)
    }
    object(BcMath\Number)#4 (2) {
      ["value"]=>
      string(3) "3.3"
      ["scale"]=>
      int(1)
    }

Ejemplo #2 Ejemplo de BcMath\Number::mod() definiendo `scale` explícitamente

    <?php
    $number = new BcMath\Number('8.3');

    $ret1 = $number->mod(new BcMath\Number('2.22'), 1);
    $ret2 = $number->mod('8.3', 3);
    $ret3 = $number->mod(-5, 0);

    var_dump($number, $ret1, $ret2, $ret3);
    ?>

El ejemplo anterior mostrará:

    object(BcMath\Number)#1 (2) {
      ["value"]=>
      string(3) "8.3"
      ["scale"]=>
      int(1)
    }
    object(BcMath\Number)#3 (2) {
      ["value"]=>
      string(3) "1.6"
      ["scale"]=>
      int(1)
    }
    object(BcMath\Number)#2 (2) {
      ["value"]=>
      string(5) "0.000"
      ["scale"]=>
      int(3)
    }
    object(BcMath\Number)#4 (2) {
      ["value"]=>
      string(1) "3"
      ["scale"]=>
      int(0)
    }

### Ver también

- bcmod() - Devuelve el resto de una división entre números de gran tamaño
- BcMath\Number::div() - Divide por 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
- BcMath\Number::powmod() - Eleva un número de precisión arbitraria, reducido por un módulo especificado

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open