php转换数字型,$str = "10.0"; 如何判断他不是整数。

$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

所以要判断整数大体有几种方法

<?php
function 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 查找他带不带点。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-22
charOf(.)!=-1,不为-1 不是整数。追问

php 中没找到 charOf 这个函数呢?

你的意思是 查找 点号来判断整数?

难道 就没有更直接的么?

$str = "10.1"; 这个可转换为数字型后为 10.1 来直接判断
$str = "10.0"; 这个可转换为数字型后为 10 直接判断,他会是整数

追答

你想这么判断做不到,转换后他就是整数。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网