(PHP 4, PHP 5, PHP 7, PHP 8)
bcpow — Возводит в степень число произвольной точности
Функция возводит число 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"
?>