Programowanie w języku PHP » FAQ

Zaokrąglanie ułamków w PHP

  • 2006-05-29 14:39
  • 6 komentarzy
  • 5843 odsłony
  • Oceń ten tekst jako pierwszy
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

6 komentarzy

Mateusz_R 2009-08-12 08:22

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!!!

Tommy89 2008-04-05 20:23

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.

blaxcan 2007-12-07 12:27

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.

marcin_kolny 2006-09-30 11:27

To coś czego szukałem

Coldpeer 2006-02-28 17:28

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

Wolverine 2006-02-28 17:27

No i chyba round tez by sie przydalo :P