我有一个字符串:
$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
有没有办法让浮动无论文本的位置?
如果您不想使用正则表达式,请使用
filter_var:
$str = "CASH55.35inMyPocket"; var_dump( (float) filter_var( $str,FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION ) ); // float(55.35)