Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formatowanie liczb
Forum PHP.pl > Forum > PHP
sebaxd
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 ?
Sephirus
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.
sebaxd
Bo jest to częstotliwość w kHz a chce żeby było w MHz 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 biggrin.gif
mortus
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).
thek
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. }
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.