![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 2.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
W bazie przechowuje ceny w takiej formie: 10.10 czy 18.90 Użytkownik ma możliwość edycji ceny przypisanej dla jego produktu. Ceny do bazy muszą być podawane właśnie w takiej formie. Wszystko jest ok przy podanych wyżej przykładach. Jednak przy pełnych cenach użytkownik musi dopisywać zera 10.00. Pytanie brzmi w jaki sposób użyć str_replace czy wyrażeń regularnych aby użytkownik mógł wpisać 10, a to zostało zamienione na 10.00 dodatkowo zmieniając kropkę na przecinek. Kombinuje z tym trochę ale mi nie wychodzi. Nie jest to wielki problem, ale byłoby wygodniej. Dodatkowo czegoś się nauczę
![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
1. do podmiany przecinka na kropkę str_replace()
2. ustaw typ kolumny na float(9,2) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 2.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ok dzięki. Zrozumiałem swój błąd. Problemem było ograniczenie pola przez wyrażenie regularne. Normalnie podając samo 10 i tak zapisuje do bazy 10.00. Drugie pytanie w temacie. Do tej pory używałem decimal zamiast float. Mógłbyś mi powiedzieć dlaczego poleciłeś ten typ do przechowywania ceny?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Do formatowania ceny użyj NumberFormatter::formatCurrency. Typ kolumny do przechowywania ceny powinien raczej gwarantować jej dokładność, więc skorzystaj z typu DECIMAL (MySQL, Postgres, inne pewnie mają odpowiedniki albo nawet dokładnie to samo) zamiast FLOAT.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 224 Pomógł: 3 Dołączył: 24.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Float jest głównie przeznaczony do zmiennych przecinkowych, czyli nienaturalnych.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 02:52 |