我有一个来自输入的字符串。它可以是"450.021"
或"30"
。我需要确定它是int
还是float
号码。我怎么做?
我尝试使用intval
,但显然浮动的数字已被搁置,在我的情况下它不会帮助我。
答案 0 :(得分:0)
非常天真的方法
foreach(["342.23", "30"] as $a) {
if( (float)(int)$a === (float)$a ) {
echo "int";
} else {
echo "float";
}
}
但是这不会捕获解析“340.0”的情况。
编辑:进一步挖掘:
foreach(["342.23", "30"] as $a) {
$is_float = filter_var($a, FILTER_VALIDATE_FLOAT);
$is_int = filter_var($a, FILTER_VALIDATE_INT);
if( $is_float && $is_int ) {
echo $a . " is Int";
} else if( $is_float && !$is_int ) {
echo $a . " is Float";
}
}