![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Problem wygląda tak: W bazie danych chcę przechowywać i odczytywać pewien współczynnik, więc zapisuje go jako:
Przy odczytaniu tych współczynników, chcę aby były one pokazane w notacji dziesiętnej , ale bez zbędnych zer na końcu. Dla przykładu mam cztery liczby w tabeli: 1.0000000000 0.0000900000 0.0009000000 1.0000000090 Kiedy odczytuje je normalnie (bez rzutowania) to są one pokazane jako string, czyli niezbyt ładnie, wolałbym, aby te zera po prawej stronie zostały obcięte, czyli: 1 0.00009 0.0009 1.000000009 Niestety kombinuje jak mogę i niczego nie wskórałem. Za to ciekawie to wygląda po dodaniu liczby 0 do każdej wartości, wtedy typ zmienia się na double ale z małymi różnicami: 1 9.0E-5 0.0009 1.000000009 Czyli jakby lepiej oprócz tego 9.0E-5, czyli od 5 pozycji dziesiętnej zaczyna mi dodawać eksponent, co ciekawe jeśli częścią całkowitą jest liczba różna od zera pokazuje ją w postaci dziesiętnej. Nie ma jakiegoś sposobu aby wszystkie liczby były pokazane w notacji dziesiętnej, przy użyciu jednej prostej funkcji lub rzutowania? Z góry dziękuję za pomoc |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Probowałeś
echo (double)$liczba; ? -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
(double) daje ten sam efekt co dodanie zera (co automatycznie zmienia liczbę na double) czyli taki:
1 9.0E-5 0.0009 1.000000009 W sumie poradziłem sobie z tym problemem przez ucinanie zer z prawej, takie rozwiązanie proponowali na php.net, mimo to ciekawi mnie czemu to rzutowanie nie działa tak samo na wszystkich liczbach.. Ten post edytował _krc_ 24.11.2008, 19:52:10 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Działa własnie, teraz zauważyłem, ale masz za dużą liczbe. :]
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo wiem co znaczy za duża liczba..
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
@ddiceman:
Twoj sposob ogranicza mi wyswietlana liczbe do dwoch zer po przecinku a ja chce widziec wszystkie liczby ktore znajduja sie po przecinku, oczywiscie bez zbednych zer po prawej stronie. Widze ze nie ma prostego rozwiazania, poza stworzeniem funkcji ucinejace te zera.. W kazdym razie dziekuje za zainteresowanie. Pozdrawiam |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
sowiq:
nie do konca, bo dla malych liczb Twoj zapis wydrukuje notacje naukowa a moj zawsze dziesietna. Faktem jest, ze nie rozwiaze problemu, bo jest to zalezne od precyzji liczb, ale juz cos takiego tak:
Sprawdz:
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wiecej jak 14 miejsc po przecinku raczej nie bede potrzbowal. Takze to jest dobre rozwiazanie
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 13:31 |