Połączenia ciągów microtime() w liczbę całkowitą |
Połączenia ciągów microtime() w liczbę całkowitą |
1.02.2008, 17:47:18
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 6.04.2006 Ostrzeżenie: (0%) |
Witam
Przy poszczególnych wiadomościach zapisuje czas ich zapisania za pomocą time(), niestety dokładność time() jest zbyt mała, więc zainteresowałem się funkcją microtime(). Problemem jest to, że podaje ona oddzielnie mikrosekundy i sekundy. W manualu znalazłem poniższą funkcję:
Łączy ona oba ciągi tworząc jedną liczbę zmiennoprzecinkową co by mi wystarczyło z czego jednak wiem operacje na liczbach zmiennoprzecinkowych są wolniejsze od operacji na zwykłych liczbach (jeśli jest inaczej wyprowadźcie mnie z błędu). Postanowiłem więc utworzyć jedną liczbę łącząc liczbę sekund z dwiema pierwszymi liczbami mikrosekund:
Problem jednak gdy liczba mikrosekund jest mniejsza niż 10 np. 0,03. Wtedy po pomnożeniu przez 100 otrzymam liczbę 3. Natomiast gdybym miał liczbę 0,30 po pomnożeniu otrzymam liczbę 30. Jeśli liczba sekund przykładowo wynosiłaby 125 to po połączeniu z mikrosekundami otrzymam liczby: 1253 i 12530 co oczywiście nie jest prawidłowe. Niby mógłbym wykrywać czy liczba jest mniejsza od 10 i dodawać wiodące 0, jednak gdybym mnożył przez 1000 i więcej sprawa byłaby bardziej skomplikowana, jak to rozwiązać, pracować na ciągach? |
|
|
1.02.2008, 18:01:25
Post
#2
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) |
wystarczy microtime z parametrem true. zwraca wtedy floata. np.
-------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
1.02.2008, 18:21:58
Post
#3
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 6.04.2006 Ostrzeżenie: (0%) |
Faktycznie, spojrzałem do angielskiej wersji manuala i istnieje taka możliwość (polska wersja jest nieaktualna). Co do drugiej części problemu to wystarczy ciąg w postaci float pomnożyć przez 100, co pozwoli uniknąć wymienionych w moim poprzednim poście problemów.
|
|
|
Wersja Lo-Fi | Aktualny czas: 18.04.2024 - 15:01 |