Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcja przygotowująca liczbę dziesiętną.
MalyKazio
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


Witam.

Musiałem szybko napisać funkcję, która przygotowywałaby mi liczbę dziesiętną przed dodaniem jej do bazy danych. Funkcja na pewno nie jest doskonała, dlatego zwracam się do was o podpowiedź, co o niej sądzicie. Jest ona wyłącznie na mój użytek i dostosowana do moich potrzeb. Ma mi przygotować wzrost w centymetrach i uwzględniać możliwe wpisanie w formularzu przez kropkę lub przecinek, dla oddzielenia części dziesiętnych.
  1. <?php
  2. function przygotujdecimalcm($wartosc) {
  3. $pattern = '/[^0-9.,]+/';
  4. $replacement = '';
  5. $przepisany=preg_replace($pattern, $replacement, $wartosc); // usuwamy wszystkie znaki poza liczbami, przecinkiem i kropką
  6. if(empty($przepisany)) {
  7. return 0.00; // jesli nic nie zostaje to wstawiamy wartosc domyslna
  8. } else {
  9. $przepisany=str_replace(',','.',$przepisany); // zamieniamy przecinek na kropke
  10. if(substr_count($przepisany, '.') > 1) {
  11. return 0.00; // jesli jest wiecej niz dwie kropki to wartosc domysla
  12. } else {
  13. return $przepisany;
  14. }
  15. }
  16. }
  17. ?>


--------------------
"Jak Cię widzą tak Cię piszą, chyba żeś jest wielką fiszą"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
franki01
post
Post #2





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


  1. <?php
  2. function przygotujdecimalcm($wartosc) {
  3. $v = str_replace(',', '.', $wartosc);
  4. return number_format(round($v, 2), 2, '.', '');
  5. }
  6. ?>


Prościej, prawda? smile.gif Jeżeli chcesz bardziej dopasować format liczby, zapoznaj się z number_format" title="Zobacz w manualu PHP" target="_manual.
Go to the top of the page
+Quote Post
MalyKazio
post
Post #3





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


Wszystko się zgadza. Znałem tą funkcję ale bałem się jakie da efekty po wprowadzeniu nieprzewidzianych danych np. tekstu czy tekstu i liczb ale przetestowałem i faktycznie jest ok. Dzięki.


--------------------
"Jak Cię widzą tak Cię piszą, chyba żeś jest wielką fiszą"
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: 21.08.2025 - 23:25