dodání ihned! nové
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
BF

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()

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

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 na 1.
  • PHP_ROUND_HAL­F_DOWN - Zaokrouhluje desetinná čísla směrem dolů. Například číslo 0.5 bude zaokrouhleno na 0.
  • PHP_ROUND_HAL­F_EVEN - Zaokrouhluje desetinná čísla směrem k nejbližšímu sudému číslu. Například číslo 1.5 bude zaokrouhleno na 2 a číslo 2.5 rovněž na 2.
  • PHP_ROUND_HAL­F_ODD - Zaokrouhluje desetinná čísla směrem k nejbližšímu lichému číslu. Například číslo 1.5 bude zaokrouhleno na 1 a číslo 2.5 na 3.

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.


 

Předchozí článek
Převody mezi číselnými soustavami v PHP
Všechny články v sekci
PHP funkce
Přeskočit článek
(nedoporučujeme)
Generování náhodných čísel v PHP
Článek pro vás napsal Pavel Vaněček
Avatar
Uživatelské hodnocení:
1 hlasů
Autor se věnuje psaní článků na Itnetwork.cz
Aktivity

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!