php - 在 Php 中,如何从混合字符串中获取浮点值?

标签 php string

我得到了这样的字符串:

$str = "CASH55.35inMyPocket";

我只想得到 55.35

我试过:

$str = floatval("CASH55.35inMyPocket");
if ($str > 0) {
    echo "Greater_Zero";
} else {
    echo "LessZERO!!";
}
// echo "LessZERO!!";

我也试过:

$str = (float)"CASH55.35inMyPocket";
if ($str > 0) {
    echo "Greater_Zero";
} else {
    echo "LessZERO!!";
}
// echo "LessZERO!!";

根据文档:

Strings will most likely return 0 although this depends on the leftmost characters of the string.

因此,flotval(float) 显然只有在字符串类似于以下内容时才有效: 55.35aAbBcCdDeEfF...但如果它像这样将不起作用:aAbBcC55.35dDeEfF

有没有办法让 float 无论文本的位置如何?

最佳答案

如果您不想使用正则表达式,请使用 filter_var :

$str = "CASH55.35inMyPocket";
var_dump( (float) filter_var( $str, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ) ); // float(55.35) 

关于php - 在 Php 中,如何从混合字符串中获取浮点值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24342026/

相关文章:

c - Realloc 在字符串调整大小函数中失败

c# - 当我们在 C# 中初始化一个字符串时会发生什么?

c - 为什么我们必须添加 NULL 才能在 C 中使用指针打印保留字符串?

处理文件时的 Java 问题

c# - 如何从拆分字符串中删除元素?

php - Laravel - 显示名称而不是 id

php form curse-word input filter解决方案

php - 在包含路径 phpstorm 中找不到 PHPUnit

php - 是否可以使用 php 变量在 div 中使用不同的颜色?

php - SET NAMES 命令失败,访问被拒绝