Возводит в степень число произвольной точности

# 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() или значение INI-директивы `bcmath.scale`.

### Возвращаемые значения

Функция возвращает результат в виде строки.

### Ошибки

Функция выбрасывает ошибку ValueError в следующих случаях:

- Значение аргумента `num` или `exponent` оказалось строкой, которую сформировали неправильно с точки зрения допустимого формата числовых строк в модуле BCMath
- Показатель степени `exponent` содержит дробную часть
- Значение аргумента `exponent` или `scale` выходит за пределы допустимого диапазона

Функция теперь выбрасывает исключение DivisionByZeroError, если число `num` равно `0`, а показатель степени `exponent` оказался отрицательным значением.

### Список изменений

Версия | Описание
--- | ---
8.4.0 | Раньше при возведении нуля в отрицательную степень возвращалось значение `0`, теперь выбрасывают исключение DivisionByZeroError.
8.0.0 | Функция теперь не усекает показатель степени, а выбрасывает исключение ValueError, когда показатель степени `exponent` содержит дробную часть.
7.3.0 | Функция bcpow() теперь возвращает числа с заданной точностью. Раньше нули в конце дробной части числа отбрасывались.

### Примеры

Пример #1 Пример возведения числа произвольной точности в степень произвольной точности функцией bcpow()

    <?php

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

    ?>

### Примечания

> Замечание:

> До PHP 7.3.0 функция bcpow() иногда возвращала результат с меньшим количеством цифр после десятичной точки, чем указали в аргументе `scale`. Функция усекала дробную часть, только когда результат не требовал всей точности, которую разрешал параметр `scale`. Например:

> Пример #2 Пример усечения точности функцией bcpow()

>     <?php

>     echo bcpow('5', '2', 2);     // Выдаст "25", а не "25.00"

>     ?>

### Смотрите также

- bcpowmod() - Возводит число произвольной точности в степень и делит результат возведения в степень на модуль числа
- bcsqrt() - Извлекает квадратный корень из числа произвольной точности
- BcMath\Number::pow() - Возводит число произвольной точности в степень

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