任意精度数値をべき乗する

# bcpow

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

bcpow — 任意精度数値をべき乗する

### 説明

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

`num` の `exponent` 乗を求めます。

### パラメータ

`num`

  基数を表す文字列。

`exponent`

  指数を表す文字列。 指数が整数でない場合、値は切り捨てられます。 正しい指数の範囲はプラットフォーム依存ですが、 少なくとも `-2147483648` から `2147483647` までの範囲を持ちます。

`scale`
  結果の小数点以下の桁数を指定します。`null` の場合は、 bcscale() 関数でグローバルに 設定した桁数をデフォルトとして使用します。 それも設定されていない場合は `bcmath.scale` INI ディレクティブの値を使用します。

### 戻り値

結果を文字列で返します。

### エラー / 例外

この関数は、以下の場合に ValueError をスローします:

- `num` もしくは `exponent` が、BCMath で有効でない数値形式の文字列である場合
- `exponent` が整数値でない場合
- `exponent` もしくは `scale` が範囲外の値である場合

この関数は、`num` の値が `0` かつ `exponent` が負の値である場合、 DivisionByZeroError 例外をスローします。

### 変更履歴

バージョン | 説明
--- | ---
8.4.0 | `0` の負のべき乗を行った場合、`0` を返す代わりに DivisionByZeroError がスローされるようになりました。
8.0.0 | `exponent` が小数部を持つ場合、ValueError がスローされるようになりました。 以前は、小数部を切り捨てて整数として計算を行っていました。
7.3.0 | bcpow() 関数は、指定されたスケールで値を返すようになりました。 これより前のバージョンでは、後に続く0の桁が省略された数値が返される可能性がありました。

### 例

例1 bcpow() の例

    <?php

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

    ?>

### 注意

> 注意:

> PHP 7.3.0 より前のバージョンでは、 bcmul() は `scale` 引数で指定したものより少ない桁数を返す可能性がありました。 これは `scale` で許された精度が不要な場合にだけ起きていました。 たとえば、以下のような場合です:

> 例2 bcpow() で scale を指定する例

>     <?php
>     echo bcpow('5', '2', 2);     // 結果は "25.00" ではなく "25" となります
>     ?>

### 参考

- bcpowmod() - 任意精度数値のべき乗の、指定した数値による剰余
- bcsqrt() - 任意精度数値の平方根を取得する
- BcMath\Number::pow() - 任意精度数値をべき乗する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open