Php 如何将带文本的字符串数字转换为数字

Php 如何将带文本的字符串数字转换为数字,php,Php,我有一个这样的数字:342.50欧元。如何仅列出数字:342.50 我试过了,但这不是我想要的结果 $str = '342.50 EUR'; preg_match_all('!\d+!', $str, $matches); print_r($matches); 结果:Array([0]=>Array([0]=>342[1]=>00))如果您对丢失最后一个0感到满意,那么您可以简单地使用: 就这么简单 $str = +'342.50 EUR'; 或 这样,就不需要知道数字的类型(int或flo

我有一个这样的数字:342.50欧元。如何仅列出数字:342.50 我试过了,但这不是我想要的结果

$str = '342.50 EUR';
preg_match_all('!\d+!', $str, $matches);
print_r($matches);

结果:
Array([0]=>Array([0]=>342[1]=>00))
如果您对丢失最后一个
0
感到满意,那么您可以简单地使用:


就这么简单

$str = +'342.50 EUR';

这样,就不需要知道数字的类型(int或float)


这是
0+'342.50欧元'
的精简版。PHP将把字符串转换为它能在其中找到的第一个数字部分。如果没有数字,则结果为零。

您可以通过两个步骤完成此操作:

  • 从字符串中删除货币名称
  • 然后将剩余的字符串转换为浮点值
  • 可以在以下行中执行这些步骤:

    $string = '342.50 EUR';
    $string = str_replace(" EUR", "", $string);
    $float_value_of_string = floatval($string);
    echo $float_value_of_string; //342.50
    

    您可以将其转换为浮动:

    $str = '342.50 EUR';    
    $float = floatval($str);    
    
    之后,您可以选择以数字\格式显示的小数位数:

    echo(number_format($float, 2));
    
    $str = '342.50 EUR';    
    $float = floatval($str);    
    
    echo(number_format($float, 2));