PHP проверяют, является ли переменная целым числом

Разделите URL и вытащите последний элемент url.split('/').pop()

29
задан spacemonkey 2 February 2010 в 23:55
поделиться

7 ответов

$entityElementCount = (-($highScore-$totalKeywordCount))/0.29;
if (ctype_digit($entityElementCount) ){
    // (ctype_digit((string)$entityElementCount))  // as advised.
    print "whole number\n";
}else{
    print "not whole number\n";
}
18
ответ дан 27 November 2019 в 22:56
поделиться
    $num = 2.0000000000001;
    if( $num == floor( $num  ) ){
        echo('whole');
    }else{
        echo('fraction');
    }

EX:

2.0000000000001 | часть

2.1 | часть

2.00 | целый

2 | целый

1
ответ дан 27 November 2019 в 22:56
поделиться
floor($entityElementCount) == $entityElementCount

Это будет верно, если это целое число

1
ответ дан 27 November 2019 в 22:56
поделиться

Основной способ, как сказал Чача

if (floor($number) == $number)

, однако, типы плавающих точек не могут точно хранить числа, что означает, что 1 может храниться как 0,9999999997. Эта воля, конечно, означала, что вышеуказанная проверка не удалась, потому что он будет округлен до 0, даже если для ваших целей это достаточно близко до 1, чтобы считаться целым числом. Поэтому попробуйте что-то вроде этого:

if (abs($number - round($number)) < 0.0001)
9
ответ дан 27 November 2019 в 22:56
поделиться
if(floor($number) == $number)

Не стабильный алгоритм. Когда математически значение равно 1,0, числовое значение может быть 0,9999999. Если вы примените к нему floor (), он будет равен 0, что не равно 0,9999999.

Вы должны угадать радиус точности, например, 3 цифры

if(round($number,3) == round($number))
3
ответ дан 27 November 2019 в 22:56
поделиться

Если вы знаете, что оно будет числовым (то есть это никогда не будет целочисленным преобразованием в строку, например «десять» или «100» ], вы можете просто используйте is_int () :

$entityElementCount = (-($highScore-$totalKeywordCount))/0.29;
$entityWholeNumber = is_int($entityElementCount);

echo ($entityWholeNumber) ? "Whole Number!" : "Not a whole number!";
6
ответ дан 27 November 2019 в 22:56
поделиться
if (floor($number) == $number)
45
ответ дан 27 November 2019 в 22:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: