Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]str_replace + wyrażenie regularne
iqique
post
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ę biggrin.gif
Go to the top of the page
+Quote Post
CuteOne
post
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)
Go to the top of the page
+Quote Post
iqique
post
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?
Go to the top of the page
+Quote Post
Crozin
post
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.
Go to the top of the page
+Quote Post
kuba_pilach
post
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.
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 Aktualny czas: 22.08.2025 - 02:52