bcdivmod

(PHP 8 >= 8.4.0)

bcdivmodObtém o quociente e o módulo de um número de precisão arbitrário

Descrição

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

Obtém o quociente e o resto da divisão de num1 por num2.

Parâmetros

num1

O dividendo, como uma string.

num2

O divisor, como uma string.

scale
Este parâmetro é usado para definir o número de dígitos após o separador de decimais do resultado. Se for null, será usada a escala padrão definida com bcscale(), ou será usado o valor da diretiva INI bcmath.scale.

Valor Retornado

Retorna um array indexado onde o primeiro elemento é o quociente como uma string e o segundo elemento é o restante como uma string.

Erros/Exceções

Esta função lança uma exceção ValueError nos seguintes casos:

  • num1 ou num2 não for uma string numérica BCMath bem formada.
  • scale estiver fora do intervalo válido.

Esta função lança uma exceção DivisionByZeroError se num2 for igual a 0.

Exemplos

Exemplo #1 Exemplo 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
?>

Exemplo #2 bcdivmod() com decimais

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

Veja Também

  • bcdiv() - Divide dois números de precisão arbitrária
  • bcmod() - Obtém o resto de uma divisão com precisão arbitrária
  • BcMath\Number::divmod() - Obtém quociente e resto de um número de precisão arbitrária