Правильное выражение десятичного числа, нет. {точка или точка} Использование PHP

84
2

Например, если бы у меня было:

1.2
1.65
5
9.5
125

Допустимые числа - 5 и 125.

Недопустимые числа: 1.2, 1.65, 9.5

Я застрял в проверке, имеет ли число десятичное число или нет.
Я попробовал is_numeric но он принял числа с десятичной точкой.

спросил(а) 2015-09-15T14:55:00+03:00 4 года, 2 месяца назад
3
Решение
49

Если вы уверены, что is_int() переменная не является строкой, вы можете использовать is_int() чтобы проверить, действительно ли она или is_float() чтобы проверить, является ли она недопустимой.

Но если вы обрабатываете формы, например, переменная часто является строкой, которая делает ее сложнее, и это простое решение, которое работает с строками, целыми числами и поплавками:

if (is_numeric($number)) {
//if we already know $number is numeric...
if ((int) $number == $number) {
//is an integer!!
}
}

Это также быстрее, чем регулярные и строковые методы.

ответил(а) 2015-09-15T15:11:00+03:00 4 года, 2 месяца назад
Еще 2 ответа
45

Возможность попробовать использовать strpos:

if (strpos($a,'.') === false) { // or comma can be included as well
echo 'Valid';
}

или попробуйте его с помощью регулярного выражения:

if (preg_match('/^\d+$/',$a))
echo 'Valid';

Примеры, взятые здесь.

ответил(а) 2015-09-15T15:10:00+03:00 4 года, 2 месяца назад
35

Используйте is_float() чтобы найти недопустимые числа

ответил(а) 2015-09-15T15:03:00+03:00 4 года, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема