bcpow

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

bcpowPotenz einer Zahl beliebiger Genauigkeit

Beschreibung

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

Potenziert num mit exponent.

Parameter-Liste

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.

Rückgabewerte

Gibt das Ergebnis als String zurück.

Fehler/Exceptions

In den folgenden Fällen wirft diese Funktion einen ValueError:

  • num oder exponent ist keine wohlgeformte numerische BCMath-Zeichenkette
  • scale liegt außerhalb des gültigen Bereichs
  • exponent hat eine Nachkommastelle

Wenn num 0 ist und exponent ein negativer Wert ist, wirft diese Funktion eine DivisionByZeroError-Exception.

Changelog

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.

Beispiele

Beispiel #1 bcpow()-Beispiel

<?php

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

?>

Anmerkungen

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 den scale erlaubt ist. Zum Beispiel:

Beispiel #2 bcpow() Genauigkeitsbeispiel

<?php
echo bcpow('5', '2', 2); // gibt "25" aus, nicht "25.00"
?>

Siehe auch

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