# bcpow

(PHP 4, PHP 5, PHP 7)

bcpow任意精度数字的乘方

### 说明

bcpow ( string `\$left_operand` , string `\$right_operand` [, int `\$scale` ] ) : string

`左操作数``右操作数`次方运算.

### 参数

`left_operand`

`right_operand`

``` scale```

### 范例

Example #1 bcpow() 示例

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

### 注释

Note:

bcpow() may return a result with fewer digits after the decimal point than the `scale` parameter would indicate. This only occurs when the result doesn't require all of the precision allowed by the `scale`. For example:

Example #2 bcpow() scale example

``` <?phpecho bcpow('5', '2', 2);     // prints "25", not "25.00"?> ```

### 参见

• bcpowmod() - Raise an arbitrary precision number to another, reduced by a specified modulus
• bcsqrt() - 任意精度数字的二次方根

``` 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. ```
``` 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 ```
``` <?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)); } ?> ```