exp()
Aprenda a usar a função exp() no PHP para calcular o valor exponencial de um número com exemplos práticos e dicas de uso.
A função exp() no PHP retorna e elevado à potência de um número fornecido — ou seja, e^x. Aqui, e (número de Euler, aproximadamente 2.71828) é a base do logaritmo natural e aparece em diversas áreas da ciência e das finanças: juros compostos, crescimento populacional, decaimento radioativo e probabilidade. Esta página aborda a sintaxe, o valor de retorno, vários exemplos práticos, a relação com sua função inversa log() e os erros comuns a evitar.
Sintaxe
exp(float $num): float$num— o expoente. Qualquer número (positivo, negativo, zero ou float).- Valor de retorno — um
float: o valor deeelevado a$num.
Como e é irracional, o resultado é quase sempre um decimal não terminante. O PHP o imprime usando a precisão definida pela diretiva precision do php.ini (14 dígitos significativos por padrão).
Exemplo básico
Passamos 2 para exp(), então ele calcula e². O resultado, 7.3890560989307, é 2.71828... multiplicado por si mesmo.
Valores de referência principais
Alguns valores de entrada merecem ser memorizados, pois mostram o que a função está fazendo:
<?php
echo exp(0), "\n"; // 1 (anything^0 is 1)
echo exp(1), "\n"; // 2.718281828459 (this IS e, same as the M_E constant)
echo exp(-1), "\n"; // 0.36787944117144 (e^-1 = 1/e)
echo exp(0.5), "\n";// 1.6487212707001 (the square root of e)
?>exp(0)é1, pois qualquer base elevada à potência0é igual a1.exp(1)equivale à constante interna do PHPM_E. Você pode usarM_Ediretamente quando precisar apenas do valor de e sem recalculá-lo.- Um expoente negativo retorna um valor entre
0e1(e^-x = 1/e^x), que é como o decaimento exponencial é modelado.
exp() é o inverso de log()
O logaritmo natural, a função log() do PHP, desfaz exp() e vice-versa. Compondo as duas, obtém-se o número original:
<?php
$x = 5;
echo log(exp($x)), "\n"; // 5
echo exp(log($x)), "\n"; // 5
?>Essa relação é a razão pela qual exp() aparece sempre que você tem um modelo expresso com logaritmos naturais e precisa converter de volta para uma escala normal.
Exemplo prático: juros compostos contínuos
Um uso clássico e real de exp() é a fórmula de juros compostos contínuos, A = P · e^(r·t):
<?php
$principal = 1000; // starting amount
$rate = 0.05; // 5% annual rate
$years = 10;
$amount = $principal * exp($rate * $years);
echo round($amount, 2); // 1648.72
?>Após 10 anos, $1000 capitalizados continuamente a 5% crescem para aproximadamente $1648.72.
exp() vs. pow()
É fácil confundir exp() com pow():
exp($x)usa sempreecomo base — equivale apow(M_E, $x).pow($base, $exp)permite escolher qualquer base, por exemplopow(2, 10)para2¹⁰.
Portanto, exp(3) e pow(M_E, 3) produzem o mesmo resultado, mas use pow() sempre que a base for diferente de e.
Erros comuns
- Não passe uma string com unidades.
exp("2 apples")é convertido paraexp(2)(com um aviso no PHP moderno). Sempre passe um valor numérico limpo. - Entradas muito grandes geram
INF.exp(710)ultrapassa o intervalo de um float do PHP e retornaINF. Proteja-se contra expoentes muito grandes se a entrada for fornecida pelo usuário. - A precisão de exibição não significa perda de precisão. O
floatcompleto é armazenado internamente; apenas a string exibida é truncada. Useprintf()ounumber_format()para controlar quantos dígitos são mostrados.
Conclusão
exp() retorna e^x e é o bloco fundamental para qualquer matemática exponencial natural em PHP — crescimento, decaimento e capitalização contínua. Lembre-se de que é o inverso de log(), que exp(1) equivale à constante M_E, e que você deve usar pow() quando precisar de uma base diferente de e. Para operações do tipo raiz quadrada inversa, veja também sqrt().