PHP.mk документација

bcpow

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.bcpow.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.bcpow.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
bcpow

Референца за `function.bcpow.php` со подобрена типографија и навигација.

function.bcpow.php

bcpow

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

bcpowПодигни број со произволна прецизност на друг

= NULL

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

Подигни num на степен exponent.

Параметри

num

Основата, како стринг.

exponent

Експонентот, како стринг. Мора да биде вредност без децимален дел. Валидниот опсег на експонентот е специфичен за платформата, но е барем -2147483648 to 2147483647.

scale
Овој параметар се користи за поставување на бројот на цифри по децималната точка во резултатот. Ако null, тоа ќе се стандардно постави на стандардната скала поставена со bcscale(), или ќе се врати на вредноста на bcmath.scale INI директивата.

Вратени вредности

Враќа резултат како стринг.

Errors/Exceptions

Оваа функција фрла ValueError во следниве случаи:

  • num or exponent не е добро формиран BCMath нумерички стринг
  • exponent има децимален дел
  • exponent or scale е надвор од валиден опсег

Оваа функција фрла 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 белешки

Мајкл Бејли (jinxidoru at byu dot net)
21 години пред
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.com
thomas at tgohome dot com
пред 16 години
<?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));
}


?>
Анонимен
21 години пред
Well, if bcpow has limits, then this should work:
<?php
function 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.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.