【问题标题】:PHP : convert String to Float when possiblePHP:尽可能将字符串转换为浮点数
【发布时间】:2013-03-27 14:57:10
【问题描述】:

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

【问题讨论】:

标签: php type-conversion


【解决方案1】:
function toNumber($input) {
    return is_numeric($input) ? (float)$input : $input;
}

【讨论】:

  • is_numeric?嗯……哼哼……好吧。
  • 如果你仔细想想,是有道理的,不是吗? ;-3
  • 这就是 PHP 的问题所在。太多内置函数的名字难以纠正(好吧,不是这个)!
  • 嗯,很公平。不过,值得仔细阅读基本函数列表一两次,就像所有字符串函数和所有数字函数一样。没有那么很多... :)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2014-12-24
      • 2011-06-30
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 2014-09-25
      • 1970-01-01
      相关资源
      最近更新 更多