Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formatowanie liczb
sebaxd
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.04.2012

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


Witam, mam taki broblem... jaka funkcja przetworzy mi liczbę z formatu 145625000 do 145.6250? Da się tak wgl ? Czy zostaje ręczne przepisywanie w bazie ?

Ten post edytował sebaxd 16.04.2012, 07:37:59
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


liczby 145625000 do 145.6250 nie przerobi Ci żadna funkcja bo nie ma tutaj żadnego wzoru, po którym można by było taką zamianę zrobić. Dlaczego akurat 145.625 a nie 1456.25 lub 14.5625?

Opisz konkretniej swój problem.

Ogólnie do formatowania liczb dobra jest number_format(...) znajdziesz ją w manualu.
Go to the top of the page
+Quote Post
sebaxd
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.04.2012

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


Bo jest to częstotliwość w kHz a chce żeby było w MHz (IMG:style_emoticons/default/wink.gif) i jeśli zrobię 14.5625 czy 1456.25 będą to już zupełnie inne pasma ;P a zmienianie prawie 300 rekordow w bazie recznie tez mi sie nie usmiecha (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował sebaxd 16.04.2012, 07:48:28
Go to the top of the page
+Quote Post
mortus
post
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


145625000 to raczej częstotliwość w Hz, żeby było w kHz to dzielisz przez 1000, a żeby było w MHz to dzielisz przez 1000000:
  1. $Hz = 145625000;
  2. $kHz = $Hz/1000.0;
  3. $MHz = $Hz/1000000.0; // lub $MHz = $kHz/1000;
  4. var_dump($Hz, $kHz, $MHz);

Dodanie 0 po kropce w liczbach 1000.0 i 1000000.0 sprawi, że wynikiem dzielenia będzie liczba zmiennoprzecinkowa, czyli to czego potrzebujemy. W przeciwnym wypadku otrzymamy tylko liczbę całkowitą (wynik dzielenia bez reszty).

Ten post edytował mortus 16.04.2012, 08:17:59
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




W locie sobie to konwertować? k = 1000, M = 1000000 i dzielić oraz dodawać przedrostki w zależności od potrzeb. To tak naprawdę tylko element estetyczny i jeśli używasz OOP to możesz to wrzucić jako metodę w helperze widoku. funkcja w stylu:
  1. function($value, $przedrostek = 'M') {
  2. //tu walidacja $value jako liczby oraz $przedrostek jako oznaczenia( może być choćby in_array() )... i jeśli błąd to wyjątek albo false czy jak tam chcesz...
  3. switch($przedrostek)
  4. {
  5. case 'M':
  6. return ($value/1000000).' M';
  7. //... i tak dalej inne przedrostki
  8. default:
  9. return $value;
  10. }
  11.  
  12. }
Go to the top of the page
+Quote Post

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: 23.08.2025 - 04:59