W3docs

pow()

Aprende a usar la función pow() en PHP para elevar un número a una potencia, con ejemplos de exponentes negativos, fraccionarios y cero.

La función pow() eleva un número a una potencia, es decir, calcula base multiplicado por sí mismo exponent veces. Esta página cubre su sintaxis, el tipo de valor que devuelve, cómo se diferencia del operador **, y los casos extremos (exponentes negativos, fraccionarios y cero) que suelen confundir.

Sintaxis

pow(int|float $base, int|float $exponent): int|float|object
  • $base — el número que se va a elevar.
  • $exponent — la potencia a la que se eleva la base.

La función devuelve $base elevado a la potencia de $exponent. El tipo del resultado depende de las entradas: si ambos argumentos son enteros no negativos y el resultado cabe en un entero, se devuelve un int; en caso contrario, se devuelve un float.

Ejemplo básico

php— editable, runs on the server

Aquí elevamos 2 a la potencia de 3, almacenamos el resultado y lo imprimimos. Dado que ambos argumentos son enteros no negativos, pow() devuelve el entero 8.

pow() vs. el operador **

Desde PHP 5.6, el operador de exponenciación ** hace exactamente lo mismo que pow() y suele preferirse porque se lee de forma más natural:

<?php
echo pow(2, 10);  // 1024
echo "\n";
echo 2 ** 10;     // 1024
?>

Ambos producen 1024. El operador ** es asociativo por la derecha, por lo que 2 ** 3 ** 2 se evalúa como 2 ** (3 ** 2), que es 512, no 64. Consulta operadores de PHP para más información sobre la precedencia de operadores.

Exponentes negativos, fraccionarios y cero

pow() no se limita a exponentes enteros positivos.

<?php
echo pow(2, -2);   // 0.25  -> 1 / (2 * 2)
echo "\n";
echo pow(16, 0.5); // 4     -> the square root of 16
echo "\n";
echo pow(5, 0);    // 1     -> any number to the power 0 is 1
echo "\n";
echo pow(-2, 3);   // -8    -> a negative base with an integer exponent
?>

Comportamientos clave:

  • Un exponente negativo devuelve el recíproco, por lo que el resultado es un float.
  • Un exponente fraccionario calcula una raíz: elevar a 0.5 equivale a la raíz cuadrada, y a 1/3 a la raíz cúbica. Para raíces cuadradas específicamente, sqrt() es más claro.
  • Cualquier base elevada a la potencia 0 es 1.
  • Una base negativa elevada a un exponente no entero no tiene resultado real; pow() devuelve NAN (Not A Number) en ese caso.

Advertencias

  • Los resultados grandes se desbordan a float. pow(2, 63) supera PHP_INT_MAX en un sistema de 64 bits, por lo que el resultado se convierte silenciosamente en float y pierde precisión. Úsalo sabiendo que el tipo del resultado puede cambiar.
  • NAN para raíces imposibles. pow(-8, 1/3) devuelve NAN en lugar de -2, porque PHP lo evalúa como una potencia de número real.
  • Las cadenas se convierten automáticamente. pow("2", "3") funciona y devuelve 8, pero depender de la conversión de cadenas es frágil — pasa números.

Funciones relacionadas

  • sqrt() — raíz cuadrada, equivalente a pow($n, 0.5).
  • abs() — valor absoluto, útil antes de calcular una potencia fraccionaria de un número posiblemente negativo.
  • intdiv() — división entera.
  • Funciones matemáticas de PHP — descripción general del kit numérico de PHP.

Conclusión

pow() (o el operador equivalente **) eleva un número a una potencia y es un elemento fundamental en cualquier código PHP matemático. Recuerda que el tipo de retorno puede cambiar de int a float según los argumentos, que las bases negativas con exponentes fraccionarios producen NAN, y que los resultados muy grandes se desbordan a floats.

Práctica

Práctica
¿Cuál es la funcionalidad de la función 'pow' en PHP?
¿Cuál es la funcionalidad de la función 'pow' en PHP?
Was this page helpful?