php将格式化的int转换为int

rob*_*nal 6 php number-formatting

很抱歉问这个,但是,我找不到一个可以得到这个的解决方案 - > 7,000到7000.

我正在使用intval()和number_format(),但它只会给我7而不是7000.

$myVal = '7,000';
echo intval($myVal);
Run Code Online (Sandbox Code Playgroud)

这返回7

与number_format()相同

我究竟做错了什么?

vst*_*stm 11

如果您使用的是PHP> = 5.3(或安装了"intl"扩展,至少版本为1.0),那么您还可以使用NumberFormatter该类来解析特定于语言环境的编号.

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

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

# output: int(7000)
Run Code Online (Sandbox Code Playgroud)

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


小智 7

intval()由于逗号,将无法使用您拥有的字符串.你可以通过使用str_replace()然后调用来删除逗号intval():

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