(PHP 4, PHP 5, PHP 7, PHP 8)
bcpow — Potenz einer Zahl beliebiger Genauigkeit
Potenziert num
mit
exponent
.
num
Die Basis in Stringform.
exponent
Der Exponent in Form einer Zeichenkette; muss ein Wert ohne
Nachkommastelle sein.
Der gültige Bereich des Exponenten ist plattformabhängig, ist allerdings
mindestens -2147483648
bis
2147483647
.
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.
Gibt das Ergebnis als String zurück.
In den folgenden Fällen wirft diese Funktion einen ValueError:
num
oder exponent
ist keine wohlgeformte numerische BCMath-Zeichenkettescale
liegt außerhalb des gültigen Bereichsexponent
hat eine Nachkommastelle
Wenn num
0
ist und
exponent
ein negativer Wert ist, wirft diese Funktion
eine DivisionByZeroError-Exception.
Version | Beschreibung |
---|---|
8.4.0 | Bei negativen Potenzen von 0 wurde bisher 0 zurückgegeben, nun wird eine DivisionByZeroError-Exception geworfen. |
8.0.0 |
Wenn exponent eine Nachkommastelle hat, wird nun
ein ValueError geworfen, anstatt den Wert
abzuschneiden.
|
7.3.0 | bcpow() liefert nun Zahlen mit den angeforderten Nachkommastellen zurück. Zuvor haben die zurückgelieferten Zahlen möglicherweise abschließende Dezimalnullen ausgelassen. |
Beispiel #1 bcpow()-Beispiel
<?php
echo bcpow('4.2', '3', 2); // 74.08
?>
Hinweis:
Vor PHP 7.3.0 kann bcpow() ein Ergebnis mit weniger Dezimalstellen liefern als der
scale
Parameter angibt. Das geschieht nur, wenn das Ergebnis nicht die gesamte Genauigkeit benötigt, die durch denscale
erlaubt ist. Zum Beispiel:Beispiel #2 bcpow() Genauigkeitsbeispiel
<?php
echo bcpow('5', '2', 2); // gibt "25" aus, nicht "25.00"
?>