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 Bailey
http://www.jinxidoru.combcpow
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
bcpow
Референца за `function.bcpow.php` со подобрена типографија и навигација.
bcpow
(PHP 4, PHP 5, PHP 7, PHP 8)
bcpow — Подигни број со произволна прецизност на друг
= NULL
Подигни num на степен
exponent.
Параметри
num-
Основата, како стринг.
exponent-
Експонентот, како стринг. Мора да биде вредност без децимален дел. Валидниот опсег на експонентот е специфичен за платформата, но е барем
-2147483648to2147483647. scale-
Овој параметар се користи за поставување на бројот на цифри по децималната точка во резултатот. Ако
null, тоа ќе се стандардно постави на стандардната скала поставена со bcscale(), или ќе се врати на вредноста наbcmath.scaleINI директивата.
Вратени вредности
Враќа резултат како стринг.
Errors/Exceptions
Оваа функција фрла ValueError во следниве случаи:
numorexponentне е добро формиран BCMath нумерички стрингexponentима децимален делexponentorscaleе надвор од валиден опсег
Оваа функција фрла DivisionByZeroError Враќа асоцијативен низ со клучеви црвена, зелена, сина и алфа кои ги содржат соодветните вредности за одредениот индекс на бојата. num
is 0 and exponent е негативна вредност.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.4.0 |
Негативни степени на 0 претходно вратен 0, но сега фрла DivisionByZeroError
exception.
|
| 8.0.0 |
Кога exponent има децимален дел, сега фрла ValueError
наместо да се скратува.
|
| 7.3.0 | bcpow() сега враќа броеви со бараната скала. Претходно, вратените броеви можеби изоставија децимални нули на крајот. |
Примери
Пример #1 bcpow() example
<?php
echo bcpow('4.2', '3', 2); // 74.08
?>Белешки
Забелешка:
Пред PHP 7.3.0 bcpow() може да врати резултат со помалку цифри по децималната точка од онаа што ја покажува
scaleпараметарот. Ова се случува само кога резултатот не бара сета прецизност дозволена одscale. На пример:Пример #2 bcpow() пример за скала
<?php
echo bcpow('5', '2', 2); // prints "25", not "25.00"
?>
Види Исто така
- bcpowmod() - Подигни број со произволна прецизност на друг, намален за одреден модул
- bcsqrt() - Земи го квадратниот корен од број со произволна прецизност
- BcMath\Number::pow() - Подигнува број со произволна прецизност
Белешки од корисници 3 белешки
<?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));
}
?>