Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja przygotowująca liczbę dziesiętną.
Forum PHP.pl > Forum > PHP
MalyKazio
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. ?>
franki01
  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.
MalyKazio
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.
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.