Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]str_replace + wyrażenie regularne
Forum PHP.pl > Forum > Przedszkole
iqique
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ę biggrin.gif
CuteOne
1. do podmiany przecinka na kropkę str_replace()
2. ustaw typ kolumny na float(9,2)
iqique
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?
Crozin
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.
kuba_pilach
Float jest głównie przeznaczony do zmiennych przecinkowych, czyli nienaturalnych.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.