PHP - 测试变量是否为整数,同时允许“.0”小数


PHP - test if a variable is an integer while allowing ".0" decimals

我想检查数字是否为数字。 ctype_digit()是一个很好的函数,但我希望2.0返回 true,2.1返回 false。

var_dump(ctype_digit(1)); // true
var_dump(ctype_digit(1.0)); // false - I want true
var_dump(ctype_digit(1.1)); // false

如果要检查变量是否表示整数,同时允许0小数,则可以使用:

floor($number) == $number

例子:

floor(1) == 1 // true
floor(1.0) == 1.0 // true
floor(1.1) == 1.1 // false

请注意,您可以使用ceil($number)(向上舍入)或round($number)(舍入到最接近的整数),而不是floor($number)(向下舍入)。

并不像人们想象的那么容易,这是我的方法。

$numbers = array(1.0, '2', 2.1, '2.1');
foreach($numbers as $number){
    $numberArray = explode('.', $number);
    if($numberArray[1] == 0){
        echo $number . '<br>';
    }
}