Matematické funkce v PHP - 2. díl
V minulém díle jsme se podívali na základní matematické funkce v PHP, dnes si k nim přidáme některé další a ukážeme si použití knihovny BCMath.
Zaokrohlouvání
Pro zaokrouhlování je nejvhodnější použít funkce round(). Má dva parametry: prvním je číslo k zaokrouhlení, druhý, nepovinný, udává na kolik číslic po desetinné čárce se číslo zaokrouhlí. Jestliže se tento parametr nezadá (nebo se zadá nula), číslo se zaokrouhlí podle první číslice za desetinou čárkou. Opět si uvedeme několik příkladů:
echo round(3.4); // 3
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.8765, 2); // 1.88
echo round(1241, -3); // 1000
echo round(5.045, 2); // 5.05
Další zaokrouhlovací funkcí je ceil(). Tato funkce vrátí nejbližší celé vyšší číslo než je číslo zadané v parametru. Jestliže ale parametr celé číslo už je, funkce vrátí to samé číslo. Opět několik ukázek:
echo ceil (10.1); //11
echo ceil (10.5); //11
Poslední funkcí pro zaokrouhlování je floor(), která vrátí nejbližší menší celé číslo, než je v parametru. V podstatě vezme parametr a odstraní z něj desetinou část. I zde platí pravidlo, které říká, že jestliže parametr je už celé číslo, funkce vrátí to samé číslo.
echo floor(10.1); //10
echo floor(10.9); //10
Ostatní funkce
Na závěr vám uvádím ostatní důležitější matematické funkce, které můžete v PHP použít.
- sqrt() - vrátí druhou odmocninu zadaného čísla
- pow() - vrátí číslo vzniklé umocněním základu mocniny (první parametr) mocnitelem (druhý parametr).
- sin(), cos(), tan() - vrátí sinus, cosinus a tangens zadaného úhlu.
- asin(), acos(), atan() - inverzní funkce k sinu, cosinu a tangentě
- fmod() - vrátí zbytek po dělení dvou čísel, které jsou parametrem funkce
- max(), min() - vrátí maximální a minimální hodnotu pole zadaného v parametru.
Funkce pro výpočty s libovolnou přesností - knihovna BCMath
Dále si ukážeme pracování s čísly s libovolnou přesností aneb jak zjistit druhou odmocninu ze dvou s přesností na 1 000 000 desetinných míst ;-).
Je dobré si předem říci, že můžeme pracovat s obrovskými čísly a tak se nám může stát, že v reálném čase výsledek vůbec nedostaneme. Dokonce můžeme zahltit server tak, že dojde k výpadku.
Zpracovávaná čísla se zadávají jako řetězec. Ve všech funkcích je ale jeden nepovinný parametr - číslo. Tento parametr udává na kolik číslic se má zaokrouhlit výsledek. Jestliže chceme pro všechny funkce zaokrouhlovat na stejný počet číslic, můžeme využít funkci bcscale(), jejíž jediným parametrem je právě počet míst na který se mají zaokrouhlovat výsledky.
Tolik asi k úvodu, pojďme si ukázat samotné funkce.
Základní operace - sčítání, odčítání, násobení, dělení
Pro tyto operace nám slouží následující funkce:
- bcadd() - sčítání
- bcsub() - odčítání
- bcmul() - násobení
- bcdiv() - dělení
Všechny funkce mají dva povinné parametry, kterými jsou samotná čísla a jeden nepovinný, který udává počet míst k zaokrouhlení.
Porovnání dvou čísel
Porovnání dvou čísel zajišťuje funkce bccomp(). Tato funkce má opět dva povinné parametry, kterými jsou porovnávaná čísla. Funkce vrátí jedno z následujících tří čísel: -1 - levý parametr je menší než druhý, 0 - parametry jsou stejné, 1 - levý parametr je větší než pravý.
Další funkce
- bcpow() - umocnění dvou čísel
- bcsqrt() - druhá odmocnina zadaného čísla
Bcpow() má dva parametry: první je základ mocniny, druhý je mocnitel. Bcsqrt má povinný parametr pouze jeden, kterým je číslo, ze kterého se má vytvořit druhá odmocnina.
Věřím, že vás tento článek zaujal. Jestliže budete mít zájem, mohu sepsat další články na témata týkající se matematiky v PHP. Stačí abyste napsali, co by vás zajímalo.
M**, http://matous.ptl.cz | Sobota 21. dubna 2007 | 15:12:33
Vojta, egypt-wars.ic.cz | Čtvrtek 15. října 2009 | 14:06:51