Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проверить числа...
Форумы портала PHP.SU » » Вопросы новичков » Проверить числа...

Страниц (1): [1]
 

1. sugoj - 10 Мая, 2012 - 19:33:38 - перейти к сообщению
Есть ряд чисел...


от 150,xxxxxxxxxxxxxxxxx
до 300,xxxxxxxxxxxxxxxxx

где xxx случайные числа

Как из всех этих чисел отсеять те, которые не имеют чисел после запятой.
2. DeepVarvar - 10 Мая, 2012 - 19:38:14 - перейти к сообщению
/^\d+,\d+$/
3. lemo - 10 Мая, 2012 - 20:48:52 - перейти к сообщению
Ну или проверить на последний символ строки... Если это запятая...
4. avtor.fox - 10 Мая, 2012 - 22:25:55 - перейти к сообщению
lemo пишет:
Ну или проверить на последний символ строки... Если это запятая...


ммм. Как может запятая быть последним символом?
5. Bio man - 11 Мая, 2012 - 14:13:53 - перейти к сообщению
sugoj, быть может проверка типа? Конечно если числа изначально не строки.
6. sKaa - 11 Мая, 2012 - 14:20:40 - перейти к сообщению
а банальное :

не подходит ?
7. Bio man - 11 Мая, 2012 - 14:21:54 - перейти к сообщению
sKaa, подходит если числа имеют тип float или integer. Если же это строки то такое не прокатит.
(Добавление)
а нет, вру. все правильно.
8. sKaa - 11 Мая, 2012 - 14:24:59 - перейти к сообщению
Ну а налепить дополнительных проверок ?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. if(!is_string(strtr($value, ',', '.')) && is_float(strtr($value, ',', '.'))){
  4.   ..
  5. }
  6.  
  7.  
9. EuGen - 11 Мая, 2012 - 14:29:16 - перейти к сообщению
Зачем все эти проверки?
Судя по:
sugoj пишет:
Как из всех этих чисел отсеять те, которые не имеют чисел после запятой.

Речь идет о том, что подходят либо те числа, которые имеют вид
либо те, которые имеют вид
CODE (htmlphp):
скопировать код в буфер обмена
  1. yyy,

Какой именно вид - автор не уточнил, так что остается лишь догадываться.
Для первого случая ответ даст:
PHP:
скопировать код в буфер обмена
  1. preg_match('/^\d+$/',$sData)

для второго -
PHP:
скопировать код в буфер обмена
  1. preg_match('/^\d+,$/',$sData)
10. Mefistofel - 11 Мая, 2012 - 14:44:27 - перейти к сообщению
EuGen пишет:
Какой именно вид - автор не уточнил, так что остается лишь догадываться.



Предлагаю от php.su отправить команду на "Битву экстрасенсов". (с) LIME
11. sKaa - 11 Мая, 2012 - 14:49:01 - перейти к сообщению
EuGen, регулярка всё-же более ресурсоёмкая Улыбка
12. DeepVarvar - 11 Мая, 2012 - 14:51:13 - перейти к сообщению
А я в самом начале уже дал ответ, сразу для обоих случаев.
ТС указал что числа находятся в конкретном диапазоне и прег-матч вернет истину если число подходит, не важно, строки это или числа.
(Добавление)
sKaa пишет:
более ресурсоёмкая
Для такой атомарной операции не важно.
13. sKaa - 11 Мая, 2012 - 14:54:41 - перейти к сообщению
DeepVarvar пишет:
Для такой атомарной операции не важно.

Делать по-хорошему нужно сразу, конечно стараясь предусматривать всякие нюансы, а они будут 100%, тут без ООП уже даже тяжко как-то ))!) Порядок должен быть!)))
14. EuGen - 11 Мая, 2012 - 14:54:51 - перейти к сообщению
DeepVarvar пишет:
/^\d+,\d+$/

Так как же это выражение оставит нужное? Под него подойдут, например, 56.69 - тогда как см. то, что указал автор темы (про отсутствие знаков после запятой, в том виде, в котором даны примеры, точки нет).
15. DeepVarvar - 11 Мая, 2012 - 15:35:09 - перейти к сообщению
У него в задаче запятые и изначально ограниченный диапазон чисел.

 

Powered by ExBB FM 1.0 RC1