bcsqrt

bcsqrt($cislo, $mista)

Vrátí druhou odmocninu čísla jako text na zadaný počet desetinných míst. Umí mnohem víc desetinných míst než sqrt(). Patří do rozšíření BCMath.

Parametry

  • $cislo – odmocňované nezáporné číslo jako text.
  • $mista – nepovinný, počet desetinných míst výsledku. Výchozí je hodnota bcscale(), obvykle 0.

Příklady

echo bcsqrt("16"); // 4
echo bcsqrt("2", 10); // 1.4142135623
// bez druhého parametru jen celá část
echo bcsqrt("10"); // 3
echo bcsqrt("0.25", 2); // 0.50
// padesát desetinných míst
echo strlen(bcsqrt("2", 50)); // 52
// sqrt uloží jen asi 15 platných číslic
echo sqrt(2); // 1.4142135623731
// kontrola: druhá mocnina výsledku se vejde pod původní číslo
$odmocnina = bcsqrt("2", 10);
echo bcmul($odmocnina, $odmocnina, 10); // 1.9999999997

Na co si dát pozor

  • Záporné číslo v PHP 7 vypíše varování a vrátí null, od PHP 8.0 vyhodí výjimku ValueError.
  • Desetinná místa nad zadaný počet se usekávají, výsledek je proto vždy o kousek menší než přesná odmocnina.
  • Bez druhého parametru se počítá na počet míst z bcscale(), obvykle 0.
  • Pro běžné výpočty stačí rychlejší sqrt().
  • BCMath je rozšíření PHP a na serveru nemusí být zapnuté. Ověříte to přes function_exists("bcadd").

Příbuzné funkce:
bcpow()
sqrt()
bcdiv()