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

前端之家收集整理的这篇文章主要介绍了在Php中,如何从混合字符串中获取浮点值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个字符串:
  1. $str = "CASH55.35inMyPocket";

我想只得到55.35.

我试过了:

  1. $str = floatval("CASH55.35inMyPocket");
  2.  
  3. if( $str>0 ){
  4.  
  5. echo "Greater_Zero";
  6.  
  7.  
  8. }else{
  9. echo "LessZERO!!";
  10. }
  11. // echo "LessZERO!!";

我也尝试过:

  1. $str = (float)"CASH55.35inMyPocket";
  2.  
  3. if( $str>0 ){
  4.  
  5. echo "Greater_Zero";
  6.  
  7.  
  8. }else{
  9. echo "LessZERO!!";
  10. }
  11. // 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
  1. $str = "CASH55.35inMyPocket";
  2. var_dump( (float) filter_var( $str,FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION ) ); // float(55.35)

猜你在找的PHP相关文章