log / log10 / log1p în PHP

Numere și matematică PHP 4+ (log1p: PHP 4.1+)

Calculează logaritmul natural sau logaritmul într-o bază dată. log10 lucrează în baza 10.

Sintaxă
log(float $num, float $base = M_E): float

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, iar log(-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).