如何格式化欧洲格式的美国格式的int

时间:2013-11-06 10:06:11

标签: php format int

我以美国格式获得了一个int。

$UsInt = "67,450";

我需要以欧洲格式转换它。

$EuInt = "67450";

我无法使用str_replace()替换virgule。不要使用str_replace()是强制性存款。

我无法使用number_format(),因为我无法将逗号分隔的数字传递给此函数

是否存在PHP函数来执行此操作?或者某人已经遇到问题并且能够离开?

3 个答案:

答案 0 :(得分:3)

您可以使用PHP函数number_format()

  $EuInt = number_format($UsInt)

有关详情,请访问PHP manual

答案 1 :(得分:3)

要“取消格式化”字符串,您可以使用

格式化字符串示例:

$fmt = new NumberFormatter( 'en_US', NumberFormatter::DECIMAL );
$int = $fmt->parse("67,450");

这将为您提供原始整数,例如$int中的67450。

然后您可以使用number_format或使用

手册中的示例:

$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo $fmt->format($int);

然后给出67.450(点数为千分隔符)。

请注意,格式取决于区域设置。虽然区域的某个区域可能指向欧洲,但它本身并不是一个有效的区域设置。英国使用逗号作为千分隔符(67,450),而法国使用空格(67 450),德国人使用点(67.450)。

有关解析和格式化数字的更多信息,请参阅:

答案 2 :(得分:2)

编辑:@ Gordon♦s解决方案应该是最好的。

不是最快的方式,但应该有效:

$usInt = '67,450';
$explode = explode(',', $usInt);
$euInt = '';

foreach ($explode as $val) {
    $euInt .= $val;
}

echo $euInt;