Разделите URL и вытащите последний элемент url.split('/').pop()
$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";
}
$num = 2.0000000000001;
if( $num == floor( $num ) ){
echo('whole');
}else{
echo('fraction');
}
EX:
2.0000000000001 | часть
2.1 | часть
2.00 | целый
2 | целый
floor($entityElementCount) == $entityElementCount
Это будет верно, если это целое число
Основной способ, как сказал Чача
if (floor($number) == $number)
, однако, типы плавающих точек не могут точно хранить числа, что означает, что 1 может храниться как 0,9999999997. Эта воля, конечно, означала, что вышеуказанная проверка не удалась, потому что он будет округлен до 0, даже если для ваших целей это достаточно близко до 1, чтобы считаться целым числом. Поэтому попробуйте что-то вроде этого:
if (abs($number - round($number)) < 0.0001)
if(floor($number) == $number)
Не стабильный алгоритм. Когда математически значение равно 1,0, числовое значение может быть 0,9999999. Если вы примените к нему floor (), он будет равен 0, что не равно 0,9999999.
Вы должны угадать радиус точности, например, 3 цифры
if(round($number,3) == round($number))
Если вы знаете, что оно будет числовым (то есть это никогда не будет целочисленным преобразованием в строку, например «десять»
или «100»
], вы можете просто используйте is_int ()
:
$entityElementCount = (-($highScore-$totalKeywordCount))/0.29;
$entityWholeNumber = is_int($entityElementCount);
echo ($entityWholeNumber) ? "Whole Number!" : "Not a whole number!";