Well, if bcpow has limits, then this should work:
<?php
function bcpow_($num, $power) {
$awnser = "1";
while ($power) {
$awnser = bcmul($awnser, $num, 100);
$power = bcsub($power, "1");
}
return rtrim($awnser, '0.');
}
?>
Just that $power cannot have decimal digits in it.
bcpow
(PHP 4, PHP 5)
bcpow — Elevar um número de precisão arbitrária a outro
Descrição
string bcpow
( string $left_operand
, string $right_operand
[, int $scale
] )
Eleva left_operand a potência de right_operand .
Parâmetros
- left_operand
-
O operando da esquerda, como uma string.
- right_operand
-
O operando da direita, como uma string.
- scale
-
Este parâmetro opcional é usado para definir o número de digitos depois do ponto decimal no resultado. Você pode definir a escala padrão global para todas as funções usando bcscale().
Valor Retornado
Retorna o resultado como uma string.
Exemplos
Exemplo #1 Exemplo da bcpow()
<?php
echo bcpow('4.2', '3', 2); // 74.08
?>
Veja Também
Exemplo #2 Exemplo de bcpow()
<?php
echo bcpow(4.2, 3, 2); // 74.08
?>
bcpow
11-Feb-2005 10:58
Michael Bailey (jinxidoru at byu dot net)
10-Aug-2004 02:42
10-Aug-2004 02:42
bcpow() only supports exponents less than or equal to 2^31-1. Also, bcpow() does not support decimal numbers. If you have scale set to 0, then the exponent is converted to an interger; otherwise an error is generated.
--
Michael Bailey
http://www.jinxidoru.com
