PHP:将字符串转换为浮点数(仅当字符串表示浮点数时)

asc*_*ter 1 php string type-conversion

我有一个unknwon字符串可能类似于浮动。在那种情况下,我想将其转换为float(用于计算),否则将其保留为字符串。

如何检测字符串是否表示浮点数?

$a = "1.23";        // convert $a to 1.23
$b = "1.2 to 1.3";  // leave $b as is
Run Code Online (Sandbox Code Playgroud)

自动字符串转换会将后者转换为1.2,但这不是我想要的。

Max*_*rov 5

您可以使用is_numeric()函数检查可能包含数字的变量。例如:

$a = "1.23";
if (is_numeric($a)) {
    $a = (float)$a;
}

$b = "1.2 to 1.3";
if (is_numeric($b)) {
    $b = (float)$b;
}

var_dump([
    'a' => $a,
    'b' => $b
]);
Run Code Online (Sandbox Code Playgroud)

输出量

数组(大小= 2)'a'=>浮点数1.23'b'=>字符串'1.2至1.3'(长度= 10)


小智 5

您可以使用以下命令来检查字符串是否为浮点型:

$a = "1.23";
$isFloat = ($a == (string)(float)$a);
Run Code Online (Sandbox Code Playgroud)