Garth

Matematika v PHP

Souhrn matematických funkcí v PHP

Zaokrohlouvání, Početní funkce, Početní funkce s BCMath, Generování náhodných čísel, Převod číselných soustav, Matematické konstanty

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á, číslo se zaokrouhlí podle první číslice za desetinou čárkou.

        
echo round(8.4); // 8
echo round(7.6); // 8
echo round(5.1234, 2); // 5.12
echo round(4321, -3); // 4000
echo round(2.456, 2); // 2.46

Další zaokrouhlovací funkcí je ceil(). Tato funkce vrátí nejbližší celé vyšší číslo než je číslo zadané v parametru.

echo ceil (8.1); // 9
echo ceil (8.8); // 9

Funkce floor() vrátí nejbližší menší celé číslo, než je v parametru. V podstatě vezme parametr a odstraní z něj desetinou část.

echo floor(8.3); // 8
echo floor(8.6); // 8

Pozn.: Desetinné číslo se odděluje tečkou

Početní funkce

sqrt(cislo) - vrátí druhou odmocninu zadaného čísla

pow(cislo1, cislo2) - vrátí číslo vzniklé umocněním základu mocniny (první parametr) mocnitelem (druhý parametr).

sin(cislo), cos(cislo), tan(cislo) - vrátí sinus, cosinus a tangens zadaného úhlu.

asin(cislo), acos(cislo), atan(cislo) - inverzní funkce k sinu, cosinu a tangentě

fmod(cislo1, cislo2) - vrátí zbytek po dělení dvou čísel, které jsou parametrem funkce

max(pole), min(pole) - vrátí maximální a minimální hodnotu pole zadaného v parametru.

abs(cislo) - absolutní hodnota zadaného čísla

Početní funkce s knihovnou BCMath

V PHP je knihovna BCMath, jejíž používání neobsahuje rizika spojená s používáním typu float. Tato desetinná čísla se totiž používají jako řetězce a funkce této knihovny jsou matematické operace. BCMath se stará o přesnost na počet desetinných míst, které si sami zvolíte, přesnost máte vždy zaručenou protože BCMath nepracuje s floaty ale řetězci, které sám propočítává celočíselnou aritmetikou a s floatem nemá nic společného.
Funkce BCMath jsou funkce, kde první operátor je levá strana rovnice a druhý operátor je pravá strana rovnice. Jednotlivé funkce reprezentují pak matematickou operaci a výsledkem je buď string (výsledek matematické operace) nebo boolean (výsledek porovnání).
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.

bcadd(cislo1, cislo2) - sčítání

bcsub(cislo1, cislo2) - odčítání

bcmul(cislo1, cislo2) - násobení

bcdiv(cislo1, cislo2) - dělení

bcsqrt(cislo, odmocnovatel) - odmocňování

bcpow(druhá odmocnina zadaného čísla, umocnovatel) - umocneni

bccomp(cislo1, cislo2) - porovnání dvou čísel (návratové hodnoty -1,0,1)

Generování náhodných čísel

K vygenerování náhodného čísla poslouží funkce rand(0,100); kde 0 = Minimální náhodné číslo! a 100 = Nejvyšší možné náhodné číslo! ( Pozor!! Tato funkce generuje pouze čísla do 32758 !!)

mt_rand(0, mt_getrandmax () ) = Generuje velmi vysoká čísla

Převod číselných soustav

decOct(číslo) - převod z desítkové do osmičkové

decHex(číslo) - převod z desítkové do šestnáctkové

decBin(číslo) - převod z desítkové do dvojkové

octDec(číslo) - převod z osmičkové do desítkové

hexDec(číslo) - převod z šestnáctkové do desítkové

binDec(číslo) - převod z dvojkové do desítkové

bin2hex(cislo) - převod binární na šestnáctkovou

Flexibilnější je použít funkci base_convert(cislo, soustava1, soustava2) kde cislo je číslo které chceme převádět, soustava1 je soustava z které chceme převádět a soustava2 je soustava do které chceme převádět.

Matematické konstanty

Konstanta Hodnota Popis
M_PI 3.14159265358979323846
M_E 2.7182818284590452354 e
M_LOG2E 1.4426950408889634074 log_2 e
M_LOG10E 0.43429448190325182765 log_10 e
M_LN2 0.69314718055994530942 log_e 2
M_LN10 2.30258509299404568402 log_e 10
M_PI_2 1.57079632679489661923 pi/2
M_PI_4 0.78539816339744830962 pi/4
M_1_PI 0.31830988618379067154 1/pi
M_2_PI 0.63661977236758134308 2/pi
M_SQRTPI 1.77245385090551602729 sqrt(pi) [4.0.2]
M_2_SQRTPI 1.12837916709551257390 2/sqrt(pi)
M_SQRT2 1.41421356237309504880 sqrt(2)
M_SQRT3 1.73205080756887729352 sqrt(3) [4.0.2]
M_SQRT1_2 0.70710678118654752440 1/sqrt(2)
M_LNPI 1.14472988584940017414 log_e(pi) [4.0.2]
M_EULER 0.57721566490153286061 Eulerova konstanta [4.0.2]

<< zpět




Nejnovější články