Przy użyciu funkcji round() liczba zostaje zaokrąglona do zadanej ilości miejsc po przecinku.
Czyli na przykład round(22.23480,2) da w wyniku 22.23.
Pewien problem z prezentacją danych pojawia się w momencie, gdy po zaokrągleniu liczby zostaje zero na końcu, bowiem round(22.200192,2) da w wyniku 22.2. W zestawieniu nieelegancko wyglądają liczby z różną liczbą cyfr znaczących. Poniższa funkcja weryfikuje, czy podana liczba ma dwie cyfry po przecinku, jeżeli nie, dodaje jedno lub dwa zera. Idealne do prezentacji cen towarów.

function addzero($liczba)
{	
	// jeśli paramert jest pusty zwraca puste
                if ($liczba=='') return  ('');
	// wyciaga cyfry po przecinku (grosze)
	$grosze=round(($liczba-(int)$liczba),2);
                // odwraca dla wygody
	$grosze=strrev($grosze);
                // jesli grosze sa mniejsze od 10 i rozne od zera dodaje jedno zero
	if (($grosze<10)AND($grosze!=0)) return ($liczba."0"); 
                // jesli grosze sa rowne zero dodaje dwa zera
	if ($grosze==0) return ($liczba.".00"); 
                // zwraca liczbe
	else return ($liczba);
}
Dodano 28/12/2008 o 0:49
Kategoria: PHP
Tagi: , , ,