Elevar un número de precisión arbitraria a otro

# bcpow

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

bcpow — Elevar un número de precisión arbitraria a otro

### Descripción

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

Eleva `num` a la potencia `exponent`.

### Parámetros

`num`

  La base, como un string.

`exponent`

  El exponente, como un string. Debe ser un valor sin parte fraccionaria. El rango válido del exponente es específico de la plataforma, pero es al menos de `-2147483648` a `2147483647`.

`scale`
  Este parámetro se utiliza para establecer el número de dígitos después del punto decimal en el resultado. Si es `null`, se establecerá por defecto en la escala predeterminada establecida con bcscale(), o se utilizará el valor de la directiva INI `bcmath.scale`.

### Valores devueltos

Devuelve el resultado como un string.

### Errores/Excepciones

Esta función lanza una ValueError en los siguientes casos:

- `num` o `exponent` no es un string numérico con formato válido de BCMath
- `exponent` tiene una parte fraccionaria
- `exponent` o `scale` están fuera del rango válido

Esta función lanza una DivisionByZeroError si `num` es `0` y `exponent` es un valor negativo.

### Historial de cambios

Versión | Descripción
--- | ---
8.4.0 | Las potencias negativas de `0` anteriormente devolvían `0`, pero ahora lanzan una excepción DivisionByZeroError.
8.0.0 | Cuando `exponent` tiene una parte fraccionaria, ahora lanza un ValueError en lugar de truncar.
7.3.0 | bcpow() ahora devuelve números con la escala solicitada. Anteriormente, los números devueltos podían omitir los ceros decimales finales.

### Ejemplos

Ejemplo #1 Ejemplo de bcpow()

    <?php

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

    ?>

### Notas

> Nota:

> Antes de PHP 7.3.0, bcpow() podría devolver un resultado con menos dígitos después del punto decimal que los indicados en el parámetro `scale`. Esto sucede únicamente cuando el resultado no necesita toda la precisión disponible por `scale`. Por ejemplo:

> Ejemplo #2 Ejemplo de escalado de bcpow()

>     <?php
>     echo bcpow('5', '2', 2);     // Imprime "25", no "25.00"
>     ?>

### Ver también

- bcpowmod() - Eleva un número de precisión arbitraria a otro, reducido por un módulo especificado
- bcsqrt() - Obtiene la raiz cuadrada de un número de precisión arbitraria
- BcMath\Number::pow() - Eleva un número de precisión arbitraria

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open