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 dieelevato 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
Passiamo 2 a exp(), quindi calcola e². 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 potenza0è uguale a1.exp(1)è uguale alla costante built-inM_Edi PHP. Puoi usareM_Edirettamente quando hai solo bisogno del valore di e senza doverlo ricalcolare.- Un esponente negativo restituisce un valore compreso tra
0e1(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 sempreecome base — equivale apow(M_E, $x).pow($base, $exp)permette di scegliere qualsiasi base, ad esempiopow(2, 10)per2¹⁰.
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 inexp(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 restituisceINF. Controlla gli esponenti molto grandi se l'input proviene dall'utente. - La precisione visualizzata non è perdita di precisione. Il
floatcompleto viene memorizzato internamente; solo la string visualizzata viene troncata. Usaprintf()onumber_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().