Homiczek
23.06.2003, 19:57:36
Witam.
Poszukuje funkcji która zamienia ciąg na liczbę. Potrzebuję tego gdyż mam w formularzu pole textowe input i potrzebuję aby funkcja ucięła mi np ceny. To i tak Mysql obetnie, bo pole w bazie danych jest typu int, ale chcę przed zapisaniem do bazy danych pokazać osobom wpisującym nieprawidłową cenę że robią żle. Np cena 21000 jest ok. Ale jak ktoś wpisze 21 tyś., to w następnym oknie pojawia mi się 21 tyś, a do mysql ląduje 21 a to jest kompletna bzdura. Chciałbym aby w drugim oknie pojawiło mi się również tylko 21, po to żeby osoba wpisująca zobaczyła swój błąd i poprawiła to.
Pozdrawiam
DeyV
23.06.2003, 20:22:48
wystarczy [php:1:8606f7742e]<?php
$text_liczba = '1234';
$int_liczba = (int) $text_liczba;
?>[/php:1:8606f7742e]
kurtz
24.06.2003, 10:57:55
nie znam zadnego mechanizmu ktory by to porpawil. pomysl: spradzac czy potencjalna liczba ma wlasciwy format - i jesli nie informowac ze format jest nieprawidlowy. do sprawdzania (roznych formatow) najlepiej uzyc preg_match'a - bedziesz mogl wowczas "w locie" porpawic np "PLN 23 0000", "23,000" etc.
no i niezaleznie konwersja do inta - patrz DeyV
pozdrawiam
DeyV
24.06.2003, 11:09:21
Przykład zwykłej konwersji : :arrow:
http://www.mstudio.nq.pl/php_pl/inne/int_a_b.php
Cytat
Kiedy pierwszym wyrażeniem jest łańcuch znaków, typ zmiennej będzie zależał od drugiego wyrażenia.
[php:1:69234b3453]<?php
$foo = 1 + "10.5"; // $foo jest typu float (11.5)
$foo = 1 + "-1.3e3"; // $foo jest typu float (-1299)
$foo = 1 + "bob-1.3e3"; // $foo jest typu integer (1)
$foo = 1 + "bob3"; // $foo jest typu integer (1)
$foo = 1 + "10 małych świnek"; // $foo jest typu integer (11)
$foo = 1 + "10 malutkich świnek"; // $foo jest typu integer (11)
$foo = "10.0 świnek " + 1; // $foo jest typu integer (11)
$foo = "10.0 świnek " + 1.0; // $foo jest typu float (11)
?>[/php:1:69234b3453]