Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dodawanie przedrostków wielkości
robi783
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.06.2007

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


Witam wszystkich.
Chciałbym zapytać czy zna ktoś jakieś proste zrozwiązanie na wyświetlanie liczb zamiast w postaci np. 4e+9 Hz w postaci bardziej czytelnej 4Ghz. Dane pobierane są z bazy MySQL przez zapytania PHP i wyświetlane na stronie html.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Krzasz
post
Post #2





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 29.08.2003
Skąd: Warszawa

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


  1. <?php
  2. $a = 2000;
  3. $jednostka = 'Hz';
  4.  
  5. $przedrostki = array();
  6. $przedrostki[18] = 'E';
  7. $przedrostki[15] = 'P';
  8. $przedrostki[12] = 'T';
  9. $przedrostki[9] = 'G';
  10. $przedrostki[6] = 'M';
  11. $przedrostki[3] = 'k';
  12. $przedrostki[2] = 'h';
  13. $przedrostki[1] = 'da';
  14. $przedrostki[0] = '';
  15. $przedrostki[-1] = 'd';
  16. $przedrostki[-2] = 'c';
  17. $przedrostki[-3] = 'm';
  18. $przedrostki[-6] = 'ľ';
  19. $przedrostki[-9] = 'n';
  20. $przedrostki[-12] = 'p';
  21. $przedrostki[-15] = 'f';
  22. $przedrostki[-18] = 'a';
  23.  
  24. $log = (int)round(log10(abs($a)));
  25. $b = round($a/pow(10, $log));
  26.  
  27. while (!array_key_exists($log, $przedrostki) && abs($log) < 19) {
  28.  $log--;
  29.  $b = round($b*10);
  30. }
  31.  
  32. if ($log < -18) {
  33.  $b = round($b*pow(10, 18));
  34.  $log = -18;
  35. }
  36.  
  37. if ($log > 18) {
  38.  $b = round($b/pow(10, 18));
  39.  $log = 18;
  40. }
  41.  
  42. echo $b.' '.$przedrostki[$log].$jednostka.'<br />';?>


to działa na pewno (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 06:13