Ce face log / log10 / log1p
log($x) este logaritmul natural (în baza e). Cu al doilea parametru obții logaritmul în orice bază: log(8, 2) este 3. log10(float $num) este logaritmul în baza 10.
log1p(float $num) calculează log(1 + x) precis pentru x foarte aproape de 0. Pentru 0 logaritmul este -INF, iar pentru numere negative este NAN.
Parametri
| Parametru | Descriere |
|---|---|
$num |
Numărul. Trebuie să fie pozitiv. |
$base |
Opțional. Baza logaritmului. Implicit e. |
Ce returnează
Logaritmul, ca float.
Exemple
Exemplul 1: Baze diferite
<?php
var_dump(log(M_E));
var_dump(log(8, 2));
var_dump(log10(1000));
var_dump(log(0));
Rezultat
float(1)
float(3)
float(3)
float(-INF)
Exemplul 2: Numărul de cifre al unui număr întreg pozitiv
<?php
foreach ([7, 42, 2026, 1000000] as $n) {
echo "$n: " . (floor(log10($n)) + 1) . "\n";
}
Rezultat
7: 1
42: 2
2026: 4
1000000: 7
Exemplul 3: Câți ani până se dublează o sumă
<?php
$dobanda = 0.07;
echo round(log(2) / log(1 + $dobanda), 1) . " ani";
Rezultat
10.2 ani
Greșeli frecvente
- Dai baza 1 sau o bază negativă. Primești
ValueError. - Nu verifici că numărul este pozitiv.
log(0)dă-INF, iarlog(-1)dăNAN, fără nicio eroare.
Comenzi înrudite
exp / expm1: Calculează e la o putere (exp). expm1 calculează e la putere minus 1, precis pentru valori mici.pow: Ridică un număr la o putere. Același lucru se scrie mai scurt cu operatorul **.is_nan / is_finite / is_infinite: Verifică dacă un număr este NAN (is_nan), infinit (is_infinite) sau un număr normal, finit (is_finite).