2013-03-27 5 views
0

PHP에서는 문자열을 취하여 가능하면 항상 부동 문자로 변환하는 함수를 작성해야합니다. 그렇지 않으면 입력 문자열을 반환합니다.PHP : 가능하면 String을 Float로 변환하십시오.

이 기능이 작동한다고 생각했습니다. 분명히 비교가 잘못되었지만 나는 왜 그런지 이해하지 못합니다.

function toNumber ($input) { 
    $num = floatval($input); // Returns O for a string 
    if ($num == $input) { // Not the right comparison? 
     return $num; 
    } else { 
     return $input; 
    } 
} 

echo(gettype(toNumber("1"))); // double 
echo(gettype(toNumber("3.14159"))); // double 
echo(gettype(toNumber("Coco"))); // double (expected: string) 
+0

확인이 - http://stackoverflow.com/questions/4276516/problem-with-floats- in-php –

답변

5
function toNumber($input) { 
    return is_numeric($input) ? (float)$input : $input; 
} 
+0

is_numeric? 음 .. 아담 .. OK. –

+0

생각한다면 이해가 되겠습니까? ; -3 – deceze

+0

PHP에 문제가 있습니다. imputidable 이름을 가진 내장 함수가 너무 많습니다 (이 함수는 아닙니다)! –

0

$ NUM 개의 == 0이 아닌 $ 인분은 == $ 입력, 만약 내가 올바르게 이해 글쎄 가장 빠른 것은 확인 될 것이다.

1

, 그것은 단지, else 문 부분으로 이동합니다, 이것이 잘 작동합니다 if($num){return $num;}else{return $input} 때 $ NUM = 0

관련 문제