24. diel - Zaokrúhľovania čísel v PHP
V minulej lekcii, Prevody medzi číselnými sústavami v PHP , sme si ukázali funkcie pre prevod čísel medzi sústavami v PHP.
V tejto lekcii matematických funkcií si ukážeme funkcie pre
zaokrúhľovanie čísel v PHP. Ukážeme si funkcie ako floor()
,
ceil()
či round()
.
floor()
Funkcia floor()
nám umožňuje zaokrúhliť desatinné číslo
na ďalšie najmenšie celé číslo (zaokrúhľuje nadol).
Funkcia prijíma jeden parameter, ktorým je hodnota k zaokrúhľovania. Ak
zadaná hodnota bude záporná, dôjde tiež k zaokrúhlenie na ďalšiu
najmenšie celé číslo, teda napríklad -2.13
bude zaokrúhlené
na -3
. Dátový typ návratovej hodnoty je float
(číslo s plávajúcou desatinnou čiarkou), keďže rozsah počtu čísel typu
float
je o poznanie väčšia ako u dátového typu
int
. Ukážme si príklady:
echo( floor(1.99) );
Tu bude výstupom číslo 1
, teda ďalší najmenšie
celé číslo od zadanej hodnoty 1.99
. ďalej:
echo( floor(-0.50) );
Zaokrúhľujeme Ak zápornú hodnotu, stále platí, že dôjde k
zaokrúhlenie na ďalšiu najmenšie celé číslo. Tu bude výstupom číslo
-1
.
ceil()
Funkcia ceil()
nám na rozdiel od funkcie floor()
zaokrúhli zadané desatinné číslo na ďalšie najväčšie celé
číslo (zaokrúhľuje nahor). Funkcia prijíma iba jeden parameter,
ktorým je naša hodnota k zaokrúhľovaniu. Podobne ako pri funkcii
floor()
ak zadaná hodnota bude záporná, dôjde tiež k
zaokrúhlenie, ale na ďalšie najväčšie celé číslo. Dátový typ
návratovej hodnoty je float
. Ukážme si príklady:
echo( ceil(0.60) );
Výstupom bude číslo 1
, teda ďalší najväčšie
celé číslo od zadanej hodnoty 0.60
:
echo( floor(-0.60) );
Podobne ako u predchádzajúcej funkcie stále platí, že dôjde k
zaokrúhlenie, ale na ďalšie najväčšie celé číslo. Tu
bude výstupom číslo 0
.
round()
Funkcia round()
zaokrúhli zadané desatinné číslo tak, ako
poznáme z matematiky zo základnej školy. Čísla menšie ako 5 sú
zaokrúhľovania nadol a čísla väčšie alebo rovné 5
hore. Funkcia prijíma celkom 3 parametre, kde prvým z nich je naša
hodnota k zaokrúhľovaniu. Druhým parametrom je presnosť zaokrúhlenie.
Môžeme teda rozlíšiť, či chceme zaokrúhľovať napríklad na dve alebo
tri desatinné miesta. Posledným parametrom je mód, ktorým meníme pravidlá
zaokrúhľovania v prípade desatinného čísla 5. Máme na výber z týchto
módov:
- PHP_ROUND_HALF_UP - Defaultný mód. Zaokrúhľuje
desatinné čísla tak, ako poznáme z matematiky. Napríklad číslo
0.5
bude zaokrúhlené na1
. - PHP_ROUND_HAL-F_DOWN - Zaokrúhľuje desatinné čísla
smerom nadol. Napríklad číslo
0.5
bude zaokrúhlené na0
. - PHP_ROUND_HAL-F_EVEN - Zaokrúhľuje desatinné čísla
smerom k najbližšiemu sudému číslu. Napríklad číslo
1.5
bude zaokrúhlené na2
a číslo2.5
rovnako na2
. - PHP_ROUND_HAL-F_ODD - Zaokrúhľuje desatinné čísla
smerom k najbližšiemu nepárnemu číslu. Napríklad číslo
1.5
bude zaokrúhlené na1
a číslo2.5
na3
.
Ukážme si príklady:
echo( round(0.60) );
Dôjde k už známemu zaokrúhlenie podľa matematiky. Na výstupe bude
hodnota 1
. Ďalší príklad:
echo( round(0.65, 1) );
Pridaním druhého parametru zaistíme zaokrúhlenie čísla na jedno
desatinné miesto. Na výstupe bude teda hodnota s jedným desatinným miestom
0.7
. Posledný príklad:
echo( round(0.5, 0, PHP_ROUND_HALF_DOWN) );
Pridaním tretieho parametra zmeníme pravidlá zaokrúhľovania. Tu teda
desatinné číslo 0.5
zaokrúhľujeme smerom
nadol. Na výstupe bude hodnota 0
.
V ďalšej lekcii, Generovanie náhodných čísel v PHP , si ukážeme funkcie pre generovanie náhodných čísel v PHP.