bcpow

(PHP 4, PHP 5, PHP 7)

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

Описание

string bcpow ( string $left_operand , string $right_operand [, int $scale ] )

Возводит left_operand в степень right_operand.

Список параметров

left_operand

Левый операнд (основание) в виде строки.

right_operand

Правый операнд (степень) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Вы также можете установить этот параметр глобально для всех функций с помощью bcscale().

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

Возвращает результат в виде строки.

Примеры

Пример #1 Пример использования bcpow()

<?php

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

?>

Примечания

Замечание:

bcpow() может вернуть результат с меньшим числом цифр после десятичной точки, чем указано в аргументе scale. Так происходит, только когда результату не требуется вся точность, предоставленная в scale. Например:

Пример #2 Пример уменьшения точности в bcpow()

<?php
echo bcpow('5''2'2);     // выдаст "25", вместо "25.00"
?>

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

  • bcpowmod() - Возводит одно число в степень другого и возвращает остаток от деления результата на третье число
  • bcsqrt() - Извлекает квадратный корень из числа с произвольной точностью

Коментарии

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
2004-08-09 20:42:37
http://php5.kiev.ua/manual/ru/function.bcpow.html
Автор:
Well, if bcpow has limits, then this should work:
<?php
function bcpow_($num$power) {
   
$awnser "1";
    while (
$power) {
       
$awnser bcmul($awnser$num100);
       
$power bcsub($power"1");
    }
    return 
rtrim($awnser'0.');
}
?>
Just that $power cannot have decimal digits in it.
2005-02-11 15:58:39
http://php5.kiev.ua/manual/ru/function.bcpow.html
<?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 = (+ ($i));
       
$mul bcdiv("1.0"$pow);
       
$fraction bcmul($mulbcpow(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));
}


?>
2009-07-13 03:19:59
http://php5.kiev.ua/manual/ru/function.bcpow.html

    Поддержать сайт на родительском проекте КГБ