Lekce 25 - Zaokrouhlování čísel v PHP
V minulé lekci, Převody mezi číselnými soustavami v PHP, jsme si ukázali funkce pro převod čísel mezi soustavami v PHP.
V této lekci matematických funkcí si ukážeme funkce pro zaokrouhlování
čísel v PHP. Ukážeme si funkce jako floor()
,
ceil()
či round()
.
floor()
Funkce floor()
nám umožňuje zaokrouhlit desetinné číslo na
další nejmenší celé číslo (zaokrouhluje dolů). Funkce
přijímá jeden parametr, kterým je hodnota k zaokrouhlování. Pokud zadaná
hodnota bude záporná, dojde také k zaokrouhlení na další nejmenší celé
číslo, tedy například -2.13
bude zaokrouhleno na
-3
. Datový typ návratové hodnoty je float
(číslo
s plovoucí desetinnou čárkou), jelikož rozsah počtu čísel typu
float
je o poznání větší než u datového typu
int
. Ukažme si příklady:
echo( floor(1.99) );
Zde bude výstupem číslo 1
, tedy další nejmenší
celé číslo od zadané hodnoty 1.99
. Dále:
echo( floor(-0.50) );
Zaokrouhlujeme-li zápornou hodnotu, stále platí, že dojde k zaokrouhlení
na další nejmenší celé číslo. Zde bude výstupem číslo
-1
.
ceil()
Funkce ceil()
nám na rozdíl od funkce floor()
zaokrouhlí zadané desetinné číslo na další největší celé
číslo (zaokrouhluje nahoru). Funkce přijímá pouze jeden parametr,
kterým je naše hodnota k zaokrouhlování. Podobně jako u funkce
floor()
pokud zadaná hodnota bude záporná, dojde také k
zaokrouhlení, ale na další největší celé číslo. Datový typ návratové
hodnoty je float
. Ukažme si příklady:
echo( ceil(0.60) );
Výstupem bude číslo 1
, tedy další největší celé
číslo od zadané hodnoty 0.60
:
echo( floor(-0.60) );
Podobně jako u předchozí funkce stále platí, že dojde k zaokrouhlení,
ale na další největší celé číslo. Zde bude výstupem
číslo 0
.
round()
Funkce round()
zaokrouhlí zadané desetinné číslo tak, jak
známe z matematiky ze základní školy. Čísla menší než 5 jsou
zaokrouhlována dolů a čísla větší nebo rovno 5
nahoru. Funkce přijímá celkem 3 parametry, kde prvním z nich je
naše hodnota k zaokrouhlování. Druhým parametrem je přesnost zaokrouhlení.
Můžeme tedy rozlišit, zda chceme zaokrouhlovat například na dvě nebo tři
desetinná místa. Posledním parametrem je mód, kterým měníme pravidla
zaokrouhlování v případě desetinného čísla 5. Máme na výběr z těchto
módů:
- PHP_ROUND_HALF_UP - Defaultní mód. Zaokrouhluje
desetinná čísla tak, jak známe z matematiky. Například číslo
0.5
bude zaokrouhleno na1
. - PHP_ROUND_HALF_DOWN - Zaokrouhluje desetinná čísla
směrem dolů. Například číslo
0.5
bude zaokrouhleno na0
. - PHP_ROUND_HALF_EVEN - Zaokrouhluje desetinná čísla
směrem k nejbližšímu sudému číslu. Například číslo
1.5
bude zaokrouhleno na2
a číslo2.5
rovněž na2
. - PHP_ROUND_HALF_ODD - Zaokrouhluje desetinná čísla
směrem k nejbližšímu lichému číslu. Například číslo
1.5
bude zaokrouhleno na1
a číslo2.5
na3
.
Ukažme si příklady:
echo( round(0.60) );
Dojde k již známému zaokrouhlení dle matematiky. Na výstupu bude hodnota
1
. Další příklad:
echo( round(0.65, 1) );
Přidáním druhého parametru zajistíme zaokrouhlení čísla na jedno
desetinné místo. Na výstupu bude tedy hodnota s jedním desetinným místem
0.7
. Poslední příklad:
echo( round(0.5, 0, PHP_ROUND_HALF_DOWN) );
Přidáním třetího parametru změníme pravidla pro zaokrouhlování. Zde
tedy desetinné číslo 0.5
zaokrouhlujeme směrem
dolů. Na výstupu bude hodnota 0
.
V další lekci, Generování náhodných čísel v PHP, si ukážeme funkce pro generování náhodných čísel v PHP.