Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wzorzec ... procentów?
ZaXaZ
post
Post #1





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

Ostrzeżenie: (0%)
-----


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ę.


--------------------
Go to the top of the page
+Quote Post
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Do formatowania liczb służy NumberFormatter, od biedy number_format, a nie jakieś ucinanie fragmentów tekstu...
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #4





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
Turson
post
Post #5





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Gdzie tu widzisz wzorzec projektowy? wink.gif
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #6





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:48