# bcpow

(PHP 4, PHP 5, PHP 7)

bcpow Podnosi liczbę o dużej precyzji do potęgi

### Opis

bcpow ( string `\$x` , string `\$y` [, int `\$precyzja` ] ) : string

Podnosi liczbę `x` do potęgi `y`. Opcjonalnego argumentu `precyzja` używa się do określenia ilości miejsc po przecinku dziesiętnym w wyniku.

``` <?php echo bcpow('4.2', '3', 2); // 74.08 ?> ```

### Zobacz też: add a note

### User Contributed Notes 3 notes

-1
Anonymous
16 years ago
``` Well, if bcpow has limits, then this should work:<?phpfunction 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. ```
-1
Michael Bailey (jinxidoru at byu dot net)
16 years ago
``` 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 Baileyhttp://www.jinxidoru.com ```
-2
thomas at tgohome dot com
12 years ago
``` <?php bcscale(100); /* * Computes the natural logarithm using a series. * @author Thomas Oldbury. * @license Public domain. */ function bcln(\$a, \$iter = 10) {     \$result = "0.0";         for(\$i = 0; \$i < \$iter; \$i++)     {         \$pow = (1 + (2 * \$i));         \$mul = bcdiv("1.0", \$pow);         \$fraction = bcmul(\$mul, bcpow(bcsub(\$a, "1.0") / bcadd(\$a, "1.0"), \$pow));         \$result = bcadd(\$fraction, \$result);     }         return bcmul("2.0", \$result); } /* * Computes the base2 log using baseN log. * @note Requires above functions. * @author Thomas Oldbury. * @license Public domain. */ function bclog2(\$a, \$iter = 10) {     return bcdiv(bcln(\$a, \$iter), bcln("2", \$iter)); } /* * Computes the base10 log using baseN log. * @note Requires above functions. * @author Thomas Oldbury. * @license Public domain. */ function bclog10(\$a, \$iter = 10) {     return bcdiv(bcln(\$a, \$iter), bcln("10", \$iter)); } ?> ``` 