Bardzo często podczas programowania stajemy przed dylematem zaokrąglania liczb. Potrzeby są najróżniejsze. Czasami zaokrąglamy w górę czasami w dół, czasami standardowo a czasami po prostu odcinamy część ułamkową. Może też wystąpić konieczność zaokrąglenia według zadanej dokładności. Na szczęście w PHP możemy wszystkie te rzeczy zrobić w prosty sposób korzystając z gotowych funkcji lub wykonując odpowiednie obliczenia.
W PHP znajduje się kilka funkcji zdefiniowanych do zaokrąglania liczb :
Funkcja ceil() zaokrągla liczbę ułamkową w górę :
Funkcja floor() zaokrągla liczby ułamkowe w dół (i wbrew pozorom nie jest to proste odcięcie części ułamkowej - patrz liczby ujemne) :
Funkcja round() zaokrągla liczby ułamkowe według standardowych reguł, czyli najmniej znaczącą 5 zaokrągla w górę (przy liczbach ujemnych w dół) :
Ponadto funkcja round() posiada dodatkową opcję oznaczającą dokładność obliczeń. Dokładność oznacza ilość miejsc po przecinku, które będą uwzględniane podczas zaokrąglania, np :
Domyślną wartością jest 0, czyli zaokrąglanie do liczb całkowitych. Opcja dokładność ma jeszcze jedno ciekawe zastosowanie. Umożliwia zaokrąglanie liczb do pełnych dziesiątek, setek, tysięcy itd. Wystarczy wpisać jako dokładność liczbą ujemną np :
Istnieją też inne metody różnego rodzaju zaokrąglania liczb według potrzeb :
1. Aby odciąć część ułamkową najprościej zastosować rzutowanie typów :
2. Aby odciąć tylko część części ułamkowej stosujemy rzutowanie typów połączone z mnożeniem i dzieleniem według dokładności :
3. Aby zaokrąglić w dół do wartości dziesiątych, setnych itd. stosujemy metodę dzielenia modulo przy liczbach ujemnych odejmując dokładność :
4. Aby zaokrąglić w górę do wartości dziesiątych, setnych itd. również stosujemy metodę dzielenia modulo tym razem dodając dokładność do liczb dodatnich :
Można zastosować to na przykład w ten sposób :