[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
<?php
echo round(1.2); // Wyświetli: 1
echo round(2.5); // Wyświetli: 2
echo round(5.5, 0, PHP_ROUND_HALF_UP); // Wyświetli: 6
echo 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
<?php
echo floor(1.4); // Wyświetli: 1
echo 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
<?php
echo ceil(8.2); // Wyświetli: 9
echo 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
<?php
echo abs(-2); // Wyświetli: 2
echo abs(-5.5); // Wyświetli: 5
Komentarze
Prześlij komentarz
Dzięki za komentarz!