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 als Zeichenkette.

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 Parameter wird verwendet, um die Anzahl der Nachkommastellen im Ergebnis festzulegen. Falls null, wird die mit bcscale() definierte Standard-Genauigkeit verwendet oder auf den Wert der INI-Direktive bcmath.scale zurückgegriffen.

Rückgabewerte

Gibt das Ergebnis als Zeichenkette zurück.

Fehler/Exceptions

In den folgenden Fällen löst diese Funktion einen ValueError aus:

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

Wenn num 0 ist und exponent ein negativer Wert ist, löst diese Funktion eine DivisionByZeroError-Exception aus.

Changelog

Version Beschreibung
8.4.0 Bei negativen Potenzen von 0 wurde bisher 0 zurückgegeben, nun wird eine DivisionByZeroError-Exception ausgelöst.
8.0.0 Wenn exponent eine Nachkommastelle hat, wird nun ein ValueError ausgelöst, anstatt den Wert abzuschneiden.
7.3.0 bcpow() gibt nun Zahlen mit den angeforderten Nachkommastellen zurück. Zuvor haben die zurückgegebenen 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 Nachkommastellen zurückgeben, als der Parameter scale angibt. Dies geschieht nur, wenn das Ergebnis nicht die gesamte durch scale erlaubte Genauigkeit erfordert. 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
  • BcMath\Number::pow() - Raises an arbitrary precision number