Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Php źle dodaje (nie rozumie formatu zapisu liczb).
grochu
post 21.01.2004, 13:32:08
Post #1





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

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


Problem jest nastepujacy. Jest baza danych artykulow. kazdy artykul ma cene. Cena w bazie mysql zapisana jest w nastepujacym formacie:
tysiace,setki.cześci setne, czyli np 1,500.00 (tysiac piecset zlotych zero groszy). Wszystko jest ok, gdy dodaje ceny dwoch artykulow o cenie < 1000. Natomiast gdy wezme artykul o cenie przekraczajacej 1000 zl, to ten tysiac, traktowany jest jak zlotowka, czyli: 1,500.00 + 800.00 = 801.50. Jesli ktoś wie jak zmusic php do zrozumienia akiego zapisu liczb, to bylbym wdzieczny za odpowiedz.

Pozdrawiam, GrOcHu.
Go to the top of the page
+Quote Post
id4
post 21.01.2004, 13:45:03
Post #2





Grupa: Zarejestrowani
Postów: 223
Pomógł: 1
Dołączył: --
Skąd: Rogożnik /K-ce/

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


Witam.

A nie możesz kwoty trzymać w jednym polu tabeli?
Ustaw pole tabeli jako DECIMAL(10,2) - 2 miejsca po przecinku i po problemie. Mozę dowolnie dodawać pola tej tabeli i zawsze jest dobrze smile.gif
Go to the top of the page
+Quote Post
kszychu
post 21.01.2004, 13:55:51
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat
Witam.

A nie możesz kwoty trzymać w jednym polu tabeli?
Ustaw pole tabeli jako DECIMAL(10,2) - 2 miejsca po przecinku i po problemie. Mozę dowolnie dodawać pola tej tabeli i zawsze jest dobrze smile.gif

A gdzie on napisał, że trzyma w dwóch polach? 8O

grochu: A nie możesz tego przechowywać w bazie "normalnie" a przecinki dodawać sobie przy wyświetlaniu? Zaoszczędzi Ci to masę kłopotów.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
spenalzo
post 21.01.2004, 14:01:46
Post #4





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Użyj pola FLOAT(10,2) - dane zapisujesz rozdzielone przez kropke.
Jest to najlepsze wyjście.


--------------------

Go to the top of the page
+Quote Post
grochu
post 21.01.2004, 14:14:47
Post #5





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

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


Dzieki wszyskim. Okazalo sie jak zwykle ze to moja wina a nie php. Moj blad polegal na tym, ze uzywalem przy zapytaniu SQL funkcji format(X,Z). W tabeli cena byla jak trzeba w jednym polu. Wywalilem format i dziala jak trzeba. Dzieki jeszcze traz za helpa.
Go to the top of the page
+Quote Post
Rzepa
post 23.01.2004, 10:12:35
Post #6





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 13.01.2004

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


Ja tylko dodam, że wartości pieniężnych nie powinno się NIGDY traktować jako FLOAT (patrz definicja typu).
pozdr.
Go to the top of the page
+Quote Post
spenalzo
post 23.01.2004, 13:34:01
Post #7





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Dlaczego?


--------------------

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 08:50