2012-06-14 46 views
6

对不起,问这个,但我不能找到一个解决方案,得到这个 - )> 7000〜7000PHP转换格式INT为int

我使用INTVAL(和number_format(),但它只是给我不7 7000

$myVal = '7,000'; 
echo intval($myVal); 

这将返回7

上也是如此number_format()

我究竟做错了什么?

+0

您的php安装是否已经本地化到一个国家,','是小数点分隔符? – gcochard

+0

请查看@Greg所说的本地化,顺便说一下,您使用的是Windows吗? –

回答

6

intval()由于逗号而无法使用您所使用的字符串。您可以通过使用str_replace(),然后调用intval()像这样删除逗号:

echo intval(str_replace(',', '', $myVal))

10

如果你正在使用PHP> = 5.3(或安装了“国际”扩展,至少有1.0版本),那么你也可以使用NumberFormatter类来解析特定于语言环境的数字。

$myVal = '7,000'; 
$nf = new NumberFormatter("en_EN", NumberFormatter::DECIMAL); 

var_dump($nf->parse($myVal, NumberFormatter::TYPE_INT32)); 

# output: int(7000) 

如果您使用的PHP版本低于5.3,您最好使用@KevinS。解。

+0

这是一个更好的答案,谢谢! – thefreeman