字符串到int / float

时间:2017-09-25 13:15:12

标签: php

我有一个来自输入的字符串。它可以是"450.021""30"。我需要确定它是int还是float号码。我怎么做?

我尝试使用intval,但显然浮动的数字已被搁置,在我的情况下它不会帮助我。

1 个答案:

答案 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";
        }

    }
相关问题