pow

pow($zaklad, $exponent)

Vrátí základ umocněný na exponent. Totéž dělá operátor **. Pro celá čísla vrací celé číslo, dokud se výsledek vejde do jeho rozsahu, jinak desetinné číslo.

Parametry

  • $zaklad – umocňované číslo.
  • $exponent – mocnina. Může být záporná i zlomková.

Příklady

echo pow(2, 10); // 1024
// totéž operátorem
echo 2 ** 10; // 1024
// zlomkový exponent je odmocnina
echo pow(9, 0.5); // 3
// záporný exponent je převrácená hodnota
echo pow(2, -1); // 0.5
// typ výsledku podle vstupu
var_dump(pow(2, 3)); // int(8)
var_dump(pow(2.0, 3)); // float(8)
// výsledek mimo rozsah celého čísla se změní na desetinné číslo
var_dump(is_float(pow(2, 64))); // bool(true)
// složené úročení: 1000 Kč na 3 roky s úrokem 5 %
echo round(1000 * pow(1.05, 3), 2); // 1157.63
// operátor ^ není mocnina, ale bitová operace XOR
echo 2 ^ 10; // 8
// umocnění má přednost před znaménkem minus
echo -2 ** 2; // -4
echo (-2) ** 2; // 4
// záporný základ se zlomkovým exponentem nemá reálný výsledek
var_dump(is_nan(pow(-8, 1 / 3))); // bool(true)

Na co si dát pozor

  • Znak ^ v PHP neznamená mocninu, ale bitovou operaci XOR. Zápis 2 ^ 10 dá 8, ne 1024.
  • Velké výsledky se změní na desetinné číslo a ztratí přesnost. Přesné počty s velkými čísly dělá bcpow() z rozšíření BCMath nebo rozšíření GMP.
  • Operátor ** má přednost před znaménkem: -2 ** 2 je -4. Záporný základ dejte do závorky.
  • Výsledek, který není reálné číslo, je NAN. Pozná ho jen is_nan(), porovnání s čímkoli vrací false.

Příbuzné funkce:
sqrt()
round()
intdiv()
exp()
bcpow()