W3docs

exp()

La funzione exp() in PHP calcola il valore esponenziale di un numero, restituendo e elevato alla potenza data.

La funzione exp() in PHP restituisce e elevato alla potenza di un numero dato — ovvero e^x. Qui e (il numero di Eulero, approssimativamente 2.71828) è la base del logaritmo naturale e appare in molti ambiti della scienza e della finanza: negli interessi composti, nella crescita demografica, nel decadimento radioattivo e nella probabilità. Questa pagina tratta la sintassi, il valore restituito, diversi esempi pratici, la relazione con la funzione inversa log() e gli errori comuni da evitare.

Sintassi

exp(float $num): float
  • $num — l'esponente. Qualsiasi numero (positivo, negativo, zero o un float).
  • Valore restituito — un float: il valore di e elevato a $num.

Poiché e è irrazionale, il risultato è quasi sempre un decimale non periodico. PHP lo stampa usando la precisione impostata dalla direttiva precision di php.ini (14 cifre significative per impostazione predefinita).

Esempio di base

php— editable, runs on the server

Passiamo 2 a exp(), quindi calcola . Il risultato, 7.3890560989307, è 2.71828... moltiplicato per se stesso.

Valori di riferimento chiave

Alcuni input vale la pena memorizzare perché mostrano cosa fa la funzione:

<?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, poiché qualsiasi base elevata alla potenza 0 è uguale a 1.
  • exp(1) è uguale alla costante built-in M_E di PHP. Puoi usare M_E direttamente quando hai solo bisogno del valore di e senza doverlo ricalcolare.
  • Un esponente negativo restituisce un valore compreso tra 0 e 1 (e^-x = 1/e^x), ed è così che si modella il decadimento esponenziale.

exp() è l'inverso di log()

Il logaritmo naturale, la funzione log() di PHP, annulla exp() e viceversa. La loro composizione restituisce il numero originale:

<?php
$x = 5;

echo log(exp($x)), "\n"; // 5
echo exp(log($x)), "\n"; // 5
?>

Questa relazione è il motivo per cui exp() appare ogni volta che si ha un modello espresso con logaritmi naturali e si deve tornare a una scala normale.

Esempio pratico: interesse composto continuo

Un classico utilizzo reale di exp() è la formula dell'interesse composto continuo, 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
?>

Dopo 10 anni, $1000 capitalizzati continuamente al 5% crescono a circa $1648,72.

exp() vs. pow()

È facile confondere exp() con pow():

  • exp($x) usa sempre e come base — equivale a pow(M_E, $x).
  • pow($base, $exp) permette di scegliere qualsiasi base, ad esempio pow(2, 10) per 2¹⁰.

Quindi exp(3) e pow(M_E, 3) producono lo stesso risultato, ma usa pow() quando la base è diversa da e.

Errori comuni

  • Non passare una string con unità di misura. exp("2 apples") viene convertito in exp(2) (con un avviso nelle versioni moderne di PHP). Passa sempre un valore numerico puro.
  • Input molto grandi causano overflow a INF. exp(710) supera l'intervallo di un float PHP e restituisce INF. Controlla gli esponenti molto grandi se l'input proviene dall'utente.
  • La precisione visualizzata non è perdita di precisione. Il float completo viene memorizzato internamente; solo la string visualizzata viene troncata. Usa printf() o number_format() per controllare quante cifre mostrare.

Conclusione

exp() restituisce e^x ed è il blocco fondamentale per qualsiasi operazione matematica con esponenziale naturale in PHP — crescita, decadimento e capitalizzazione continua. Ricorda che è l'inverso di log(), che exp(1) è uguale alla costante M_E, e che dovresti usare pow() quando hai bisogno di una base diversa da e. Per operazioni simili alla radice quadrata inversa, vedi anche sqrt().

Pratica

Pratica
Cosa fa la funzione PHP exp()?
Cosa fa la funzione PHP exp()?
Was this page helpful?