Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wzorzec ... procentów?
Forum PHP.pl > Forum > Przedszkole
ZaXaZ
Czy powstał już jakiś wzorzec na liczenie procentów?

Oto mój kod:

  1. <?php
  2. $P_ban = str_replace('.','',substr(($ctu['banned']/$ctu['total']*100),0,3));
  3. $P_gt = str_replace('.','',substr(($ctu['globalsT']/$ctu['total']*100),0,3));
  4. $P_gn = str_replace('.','',substr(($ctu['globalsN']/$ctu['total']*100),0,3));
  5. $P_et = str_replace('.','',substr(($ctu['echoT']/$ctu['total']*100),0,3));
  6. $P_en = str_replace('.','',substr(($ctu['echoN']/$ctu['total']*100),0,3));
  7.  
  8. echo 'Statystyki użytkowników'."\r\n\r\n".'- Zarejestrowanych ['.$ctu['total'].' = 100%].'."\r\n".'- Zablokowanych ['.$ctu['banned'].' = '.$P_ban."%].\r\n".'- Globale: tak ['.$ctu['globalsT'].' = '.$P_gt.'%] nie ['.$ctu['globalsN'].' = '.$P_gn."%].\r\n".'- Echo tak ['.$ctu['echoT'].' = '.$P_et.'%] nie ['.$ctu['echoN'].' = '.$P_en.'%].';
  9. ?>


Zależy mi na szybkości czego jak widać niema w górnej części kodu.
Kod ma dwa minusy:
1. Liczy 99% zamiast 100%
2. Może ucinać źle.

Proszę o pomoc, dziękuję.
Michael2318
Ale po co Ci te substr, str_replace questionmark.gif?

Nie potrzeba żadnej funkcji do liczenia procentów (czy jak to nazwałeś - wzorców), ponieważ wyliczenie procentu z danej liczby składa się z kilku prostych procedur:
1) mnożymy liczbę a * b i dzielimy to przez 100 - w wyniku otrzymamy procent z danej liczby,
2) zaokrąglamy wynik - zamiast Twojego dziwnego substr, str_replace. Zainteresuj się funkcjami takimi jak round, foat.
Crozin
Do formatowania liczb służy NumberFormatter, od biedy number_format, a nie jakieś ucinanie fragmentów tekstu...
ZaXaZ
Cytat(Michael2318 @ 26.06.2014, 18:58:39 ) *
Ale po co Ci te substr, str_replace questionmark.gif?

Nie potrzeba żadnej funkcji do liczenia procentów (czy jak to nazwałeś - wzorców), ponieważ wyliczenie procentu z danej liczby składa się z kilku prostych procedur:
1) mnożymy liczbę a * b i dzielimy to przez 100 - w wyniku otrzymamy procent z danej liczby,
2) zaokrąglamy wynik - zamiast Twojego dziwnego substr, str_replace. Zainteresuj się funkcjami takimi jak round, foat.


Dzięki, kompletnie zapomnialem o rzutowaniu.
Wzorce projektowe to tak jakby najlepsze wykonanie danego kodu.
Turson
Gdzie tu widzisz wzorzec projektowy? wink.gif
ZaXaZ
biggrin.gif ślepy chyba jestem ale procenty by mogły być wzorcem, bo przecież nie jeden programista je robił, i tak pewnie doszło do najlepszego wykonania... według mnie round dobre.
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.