Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zaokrąglanie wartości, nawet jeśli podana jest liczba całkowita
Forum PHP.pl > Forum > PHP
Michael2318
Witajcie!

Potrzebuję w prosty sposób osiągnąć efekt, dzięki któremu przykładowo liczba: '67' zostanie zapisana jako
'67.00'. Próbowałem tak:

  1. round($liczba, 2);


ale wynikiem jest samo '67'. Jasne, że mogę sprawdzać czy w wyniku jest kropka, jeśli nie to dodawać na końcu zapisu '.00'. Jeśli natomiast kropka istnieje to mogę liczyć czy rzeczywiście po kropce znajdują się dwie liczby, a nie jedna. Jeśli jedna to dopisywać samo '0', ale może da się to jakoś prościej przedstawić?
wNogachSpisz
number_format
Michael2318
Załatwiłem to taką funkcją bo inaczej chyba nie pójdzie:

  1. function addzero($liczba)
  2. {
  3. // jeśli paramert jest pusty zwraca puste
  4. if ($liczba=='') return ('');
  5. // wyciaga cyfry po przecinku (grosze)
  6. $grosze=round(($liczba-(int)$liczba),2);
  7. // odwraca dla wygody
  8. $grosze=strrev($grosze);
  9. // jesli grosze sa mniejsze od 10 i rozne od zera dodaje jedno zero
  10. if (($grosze<10)AND($grosze!=0)) return ($liczba."0");
  11. // jesli grosze sa rowne zero dodaje dwa zera
  12. if ($grosze==0) return ($liczba.".00");
  13. // zwraca liczbe
  14. else return ($liczba);
  15. }


Ale dzięki za pomoc.
wNogachSpisz
LOL. A czego brakuje number_format?

  1. number_format( $liczba, 2, '.', '' );

I masz taki sam efekt..
Crozin
Zdecydowanie lepiej jest korzystać z NumberFormatter::formatCurrency() zamiast number_format. Przykłady dobrze ilustrują dlaczego.
wNogachSpisz
No tak, tyle że wymaga to PHP 5.3
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.