PHP Doku:: Potenz einer Zahl beliebiger Genauigkeit - function.bcpow.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzMathematische ErweiterungenBCMath Arbitrary Precision MathematicsBC Math Funktionenbcpow

Ein Service von Reinhard Neidl - Webprogrammierung.

BC Math Funktionen

<<bcmul

bcpowmod>>

bcpow

(PHP 4, PHP 5)

bcpowPotenz einer Zahl beliebiger Genauigkeit

Beschreibung

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

Potenziert left_operand mit right_operand.

Parameter-Liste

left_operand

Der linke Operand in Stringform.

right_operand

Der rechte Operand in Stringform.

scale

Dieser optionale Parameter kann benutzt werden, um die Anzahl der Nachkommastellen im Ergebnis festzulegen. Sie können mit Hilfe der bcscale()-Funktion auch einen globalen Vorgabewert für alle Funktionen festlegen.

Rückgabewerte

Gibt das Ergebnis als String zurück.

Beispiele

Beispiel #1 bcpow()-Beispiel

<?php

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

?>

Siehe auch

  • bcpowmod() - Potenz einer Zahl beliebiger Genauigkeit, vermindert um ein angegebenen Modulo
  • bcsqrt() - Ermittelt die Quadratwurzel einer Zahl beliebiger Genauigkeit


3 BenutzerBeiträge:
- Beiträge aktualisieren...
thomas at tgohome dot com
13.07.2009 9:19
<?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));
}


?>

11.02.2005 22:58
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.
Michael Bailey (jinxidoru at byu dot net)
10.08.2004 2:42
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



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)