2017-09-25 10 views
0

私は入力からの文字列としての数値を持っています。 "450.021"または"30"です。私はそれがintfloatかどうかを判断する必要があります。それ、どうやったら出来るの?int to float/float

私はintvalで試しましたが、明らかに浮動小数点が浮かんでいて、私の場合はそれは私を助けません。

+1

http://php.net/manual/en/function.is-float.php –

+0

はあなたが文字列を検索しようとしたことがあり、このPHPのマニュアルを読んで、 ' 「? http://php.net/manual/en/function.strpos.php –

+0

@PraveenMいいえ、テキストの場合は文字列にする必要があります。 – blako

答えて

0

非常naivアプローチ

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

    }