2017-09-25 9 views
0

입력에서 문자열로 오는 숫자가 있습니다. "450.021" 또는 "30" 일 수 있습니다. int 또는 float인지 확인해야합니다. 어떻게해야합니까?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"; 
     } 

    }