我得到了这样的字符串:
$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/