str_replace()函数不删除PHP中的逗号

时间:2015-12-31 05:16:18

标签: php replace

我在PHP代码中有以下代码:

$net_pay = 8345.24;

$net_pay = str_replace(',', '', $net_pay);
$net_pay = number_format($net_pay);

str_replace不会删除逗号。如果我是var_dump,我得到了字符串(5)“8,345”

有什么想法吗?我只是需要删除逗号,以便我可以计算。

6 个答案:

答案 0 :(得分:2)

number_format()正在做它应该做的事情。

  

如果给出了所有四个参数,则数字将格式化为十进制小数,dec_point而不是小数点前的点("。")和千位_sep而不是逗号(",& #34;)每组成千上万。

http://php.net/manual/en/function.number-format.php

只需在number_format()之后调用str_replace()。

或更简单地说,

$net_pay = 8345.24;
$net_pay = number_format ($net_pay, 0 , "", ""); 

答案 1 :(得分:1)

删除number_format()它会将数字转换为逗号分隔值,请尝试使用此

 $net_pay = trim($emp->net_pay, ' ');
 $net_pay = mb_substr($net_pay, 0, 11);
 $net_pay = str_replace('.', '', $net_pay);
 echo $net_pay;

答案 2 :(得分:1)

number_format()函数格式化一个数字为千位的数字。 如果你想在没有分离的情况下进行评估,那么就不要使用它。

现在来自下面的小数使用的round值:

$randVal = round( 8345.24);
print($randVal);//Out put 8345

希望这对你有所帮助!

答案 3 :(得分:0)

您使用的number_format可能会导致问题。请尝试以下代码。

$net_pay = "8,345";
$net_pay = str_replace(',', '', $net_pay);
echo $net_pay;

答案 4 :(得分:0)

number_format会添加逗号,因此请在str_replace之前使用。使用方法如下:

 $net_pay = 8345.24;
 $net_pay = number_format($net_pay);
 $net_pay = str_replace(',', '', $net_pay);

答案 5 :(得分:0)

只需将net_pay变量字符串类型设为make

即可
$net_pay="2,334"; 
$net_pay = str_replace(',', '', $net_pay);