[PHP] Zaokrąglanie liczb
Często podczas prac nad jakimś skryptem otrzymujemy wyniki działań matematycznych, które są zbyt precyzyjne, a chcielibyśmy je zaokrąglić. Z pomocą w takich przypadkach przychodzą wbudowane w PHP funkcje, które pozwalają na zaokrąglanie liczb w dół i w górę. Funkcje, które mam na myśli to round, floor, ceil oraz abs. Ta ostatnia służy do zwracania wartości absolutnej.
Funkcja round
Funkcja round zaokrągla liczbę zmiennoprzecinkową do podanej w drugim argumencie dokładności. Funkcja ta przyjmuje 2 argumenty, w tym 1 wymagany. Pierwszym argumentem jest liczba typu float, którą chcemy zaokrąglić. Drugi parametr to dokładność zaokrąglenia (domyślnie 0). Trzeci argument to tryb przekazywany jako stała. Dostępne tryby:
- PHP_ROUND_HALF_UP - zaokrąglić do góry;
- PHP_ROUND_HALF_DOWN - zaokrąglić w dół;
- PHP_ROUND_HALF_EVEN - zaokrąglić do najbliższej wartości parzystej;
- PHP_ROUND_HALF_ODD - zaokrąglić do najbliższej wartości nieparzystej;
Przykłady:
echo round(1.2);
// wyświetli: 1echo round(2.5);
// wyświetli: 2echo round(5.5, 0, PHP_ROUND_HALF_UP);
// wyświetli: 6echo round(5.5, 0, PHP_ROUND_HALF_DOWN);
// wyświetli: 5
Funkcja floor
Funkcja floor służy do zwracania najbliższej względem podanej jako pierwszy argument, najniższej liczby całkowitej zaokrąglając ją w dół. Zwracana wartość jest typu float. Funkcja ta przyjmuje tylko jeden argument - liczbę zmiennoprzecinkową do zaokrąglenia.
Przykłady:
echo floor(1.4);
// wyświetli: 1echo floor(10.2);
// wyświetli: 10
Funkcja ceil
Funkcja ceil działa przeciwnie do funkcji floor, czyli zwraca najbliższą względem podanej jako pierwszy argument, najwyższą liczbę całkowitą zaokrąglając ją do góry. Funkcja tą również zwraca wartość typu float.
Przykłady:
echo ceil(8.2);
// wyświetli: 9echo ceil(1.5);
// wyświetli: 2
Funkcja abs
Funkcja abs służy do zwracania wartości absolutnej podanej jako argument liczby. Podana wartość może być typu float lub integer
Przykłady:
echo abs(-2);
// wyświetli: 2echo abs(-5.5);
// wyświetli: 5
Komentarze
Prześlij komentarz
Dzięki za komentarz!