Проверьте, является ли число десятичным - PullRequest
36 голосов
/ 21 июля 2011

Мне нужно проверить в PHP, если пользователь ввел десятичное число (по-американски, с десятичной точкой: X.XXX)

Есть ли надежный способ сделать это?

Ответы [ 15 ]

0 голосов
/ 07 марта 2015

Общая куча .. но эй, это работает!

$numpart = explode(".", $sumnum); 

if ((exists($numpart[1]) && ($numpart[1] > 0 )){
//    it's a decimal that is greater than zero
} else {
// its not a decimal, or the decimal is zero
}
0 голосов
/ 31 июля 2014
   // if numeric 

if (is_numeric($field)) {
        $whole = floor($field);
        $fraction = $field - $whole;

        // if decimal            
        if ($fraction > 0)
            // do sth
        else
        // if integer
            // do sth 
}
else

   // if non-numeric
   // do sth
0 голосов
/ 03 марта 2014
$lat = '-25.3654';

if(preg_match('/./',$lat)) {
    echo "\nYes its a decimal value\n";
}
else{
    echo 'No its not a decimal value';
}
0 голосов
/ 20 ноября 2013

is_numeric возвращает true для десятичных и целых чисел. Так что если ваш пользователь лениво вводит 1 вместо 1.00, он все равно вернет true:

echo is_numeric(1); // true
echo is_numeric(1.00); // true

Вы можете преобразовать целое число в десятичное с помощью PHP или позволить вашей базе данных сделать это за вас.

0 голосов
/ 23 декабря 2012

Может быть, попытаться разобраться и в этом

!is_int()

...