Jakiego typu zmiennej użyć do przechowywania ceny w bazie?

0

Jakiego typu zmiennej użyć do przechowywania ceny w bazie? Decimal?

0

Całkowitego

0

Jak to całkowitego, czyli int? Przecież cena może też coś mieć po przecinku

1

Decimal -- albo całkowitego, ale w groszach.

0

A jaki RDBMS?

0
Zimny Kaczor3 napisał(a):

Jak to całkowitego, czyli int? Przecież cena może też coś mieć po przecinku

10.99 możesz zapisywać jako 1099 i przeprowadzać działania w takiej formie.

1
baant napisał(a):

10.99 możesz zapisywać jako 1099 i przeprowadzać działania w takiej formie.

Można, tylko po co?

1

Wszystko zależy tak naprawdę od tego jakiej dokładności potrzebujemy. Co innego naliczanie odsetek czy sprzedaż akcji, a co innego pełnych towarów w cenach podwanych z dokładnoscią do "groszy".

2
baant napisał(a):

10.99 możesz zapisywać jako 1099 i przeprowadzać działania w takiej formie.

W przypadku ceny trochę to bez sensu. Od tego bazy danych mają typy stałoprzecinkowe aby ich używać i potem nie bawić się w dzielenie przed wyświetleniem, po mnożeniu itp. Czy to po stronie klienta czy serwera. Do tego jeszcze jak będziesz miał ilość (bo to będzie program magazynowy) to będziesz mnożyć przez 1000. Obliczenia matematyczne staną się bardziej zamotane. Na przykład musisz pamiętać aby potem podzielić wynik przez 100 * 1000 jak masz cenę razy ilość do daje wartość.

Co więcej takie rozwiązanie z trzymaniem ceny w groszach jest trudniejsze w rozszerzeniu. Pamiętaj, że czasem cenę masz z dokładnością do 0.01 grosza (np. faktury za prąd). Jeśli napiszesz na nie przewidując, że klient będzie chciał wystawiać refaktury za prąd, to potem jak Ci przyjdzie taki ficzer do napisania będziesz płakał. Bo za bardzo nie wiadomo co z tym zrobić. Czy potem przemnożyć wszystkie ceny razy 100 i trzymać w dziesiątkach groszy czy zrobić z tego decimal i dalej trzymać w groszach i po przecinku setne groszy. I tak źle i tak niedobrze. A tak będąc przewidującym rozszerzasz na bazie domenę cena z 15,2 na 17,4 i już. W programie nic nie zmieniasz, przeliczenia dalej są ok. A klient zadowolony bo może refakturować kWh.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0