PHP FAQ

Zaokrąglanie ułamków w PHP

Coldpeer

Jak zaokrąglić ułamki w języku PHP? Bardzo łatwo, służą do tego funkcje:

  • ceil() - zaokrąglanie w górę
  • floor() - zaokrąglanie w dół
  • round() - zaokrąglanie liczb zmiennoprzecinkowych
  • number_format() - oprócz zaokrąglania potrafi także wstawić seperator tysięcy i znak oddzielający część całkowitą od ułamkowej.

Przykłady

ceil(2.5); // 3
floor(2.5); // 2
round(2.4);  // 2
round(2.5);  // 3
FAQ

6 komentarzy

A skąd wytrzasneliście, że 153,6346 w zaokrągleniu do części setnych to 153,64 ? Pierwszą odrzuconą cyfrą(w tym przypadku rząd części tysięcznych) jest 4, a że 4<5 to nasza liczba w zaokrągleniu wyniesie 153,63!!!

Ja jednak uważam, że 153,6346 w przybliżeniu do dwóch miejsc po przecinku to jednak 15,63 a nie 153,64... Ja nie widzę żadnych błędów w zaokrąglaniu przez te funkcje.

Proponuję zwrócić uwagę na fakt iż round() jak i number_format() nie zaokrągli np. 153.6346 do dwóch miejsc po przecinku prawidłowo.

round(153.6346, 2); // 153.63
number_format(153.6346, 2, '.', '')

Jak widać wynik będzie wynosił 153.63 a nie jak powinno być 153.64.

Do poprawnego zaokrąglania można użyć funkcji:
http://pl2.php.net/manual/pl/function.round.php#78414
Testowałem ją zaledwie pobieżnie ale wyglądała dosyć ciekawie.

To coś czego szukałem

hehe, właśnie dodałem :p

No i chyba round tez by sie przydalo :P