bcpow

(PHP 4, PHP 5, PHP 7, PHP 8)

bcpowEleva um número de precisão arbitrária a outro

Descrição

bcpow(string $num, string $exponent, ?int $scale = null): string

Eleva num a potência de exponent.

Parâmetros

num

O número base, como uma string.

exponent

O número expoente, como uma string. Precisa ser um valor sem parte fracionária. Os expoentes válidos dependem da plataforma, mas ao menos são válidos de -2147483648 até 2147483647.

scale
Este parâmetro opcional é usado para definir o número de dígitos após a casa decimal no resultado. Se for igual a null o padrão será a escala definida com a função bcscale() ou, em último caso, o valor da diretiva INI bcmath.scale.

Valor Retornado

Retorna o resultado como uma string.

Erros/Exceções

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

  • num ou exponent não são strings numéricas BCMath bem formadas
  • exponent tem uma parte fracionária
  • exponent ou scale está fora do intervalo válido

Esta função lança uma exceção DivisionByZeroError se num for igual a 0 e exponent for um valor negativo.

Registro de Alterações

Versão Descrição
8.4.0 Potências negativas de 0 anteriormente retornavam 0, mas agora lançam uma exceção DivisionByZeroError.
8.0.0 Quando exponent tem uma parte fracionária, lança uma exceção ValueError ao invés de truncar o valor.
7.3.0 bcpow() agora retorna números com a escala solicitada. Mais exatamente, o número retornado pode omitir alguns zeros decimais.

Exemplos

Exemplo #1 Exemplo da bcpow()

<?php

echo bcpow('4.2', '3', 2); // 74.08

?>

Notas

Nota:

Anteriormente ao PHP 7.3.0, bcpow() podia retornar um resultado com menos dígitos decimais do que o indicado no parâmetro scale. Isto ocorre quando o resultado não requer toda a precisão permitida por scale. Por exemplo:

Exemplo #2 Exemplo bcpow() com scale

<?php
echo bcpow('5', '2', 2); // Imprime "25", não "25.00"
?>

Veja Também

  • bcpowmod() - Eleva um número de precisão arbitrária para outro, reduzido por um módulo especificado
  • bcsqrt() - Obtém a raiz quadrada de um número de precisão arbitrária