0

在 PHP 中,我需要编写一个函数,该函数接受一个字符串并尽可能将其转换为浮点数,否则只返回输入字符串。

我认为这个功能会起作用。显然比较是错误的,但我不明白为什么。

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)
4

3 回答 3

5
function toNumber($input) {
    return is_numeric($input) ? (float)$input : $input;
}
于 2013-03-27T14:59:51.630 回答
1

try if($num){return $num;}else{return $input},这会很好,它只会跳转到 else 语句部分,当 $num = 0

于 2013-03-27T15:05:14.097 回答
0

如果我理解正确的话,最快的事情就是检查 $num == 0 而不是 $num == $input。

于 2013-03-27T14:59:58.193 回答