$str = "10.0"; 如何判断他不是整数。
is_int() 无法直接判断字符串 "10.0"; 。
这个字符串型如何转换为数字型后还是 $str = 10.0;
那些函数转换都会把后面的 .0去掉,10.0变成了0。 除非是 10.1 就不会去掉。
首先区分 整型 和 整数 是不同的概念
is_int()的作用是判断是否为整型(是否为int类型),如果一个变量是int类型,必然是一个整数。
所以你用is_int()去判断一个字符串变量自然是false,因为那个变量是string类型而不是int类型.
还有浮点型(float)型,如果变量是float的10.0,用is_int去判断还是false
就是明确一点,is_int是判断一个变量是否为int类型,如果是则true,如果不是(float、string...)就是false
所以要判断整数大体有几种方法
<?phpfunction is_int1($a){
return ($a==floor($a))?true:false;
}
function is_int2($a){
return ($a==ceil($a))?true:false;
}
function is_int3($a){
return ($a==round($a))?true:false;
}
function is_int4($a){
return ($a==intval($a))?true:false;
}
?>追问
谢谢
你贴的这些定义函数,都会显示整数。
$str = "10.1"; 就都显示 不是整数。
本来把 $str = "10.0"; 换成数值 $str = 10.0; 这样就is_int() 判断一下就成。
看来用这些函数实在无法判断。
只要通过查找解决了。
stripos( $str '.') !== false 查找他带不带点。
php 中没找到 charOf 这个函数呢?
你的意思是 查找 点号来判断整数?
难道 就没有更直接的么?
$str = "10.1"; 这个可转换为数字型后为 10.1 来直接判断
$str = "10.0"; 这个可转换为数字型后为 10 直接判断,他会是整数
你想这么判断做不到,转换后他就是整数。