繁体   English   中英

如何以欧洲格式格式化US格式的int

[英]How to format an int in format U.S. in European format

我得到一个美国格式的int。

$UsInt = "67,450";

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

$EuInt = "67450";

我不能使用str_replace()来替换virgule。 不要使用str_replace()是强制存款。

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

会存在PHP函数吗? 或者有人已经遇到问题而且能够出去?

您可以使用PHP函数number_format()

  $EuInt = number_format($UsInt)

有关更多信息,请访问PHP手册

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

格式化字符串的示例:

$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)。

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

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

不是最快的方式,但它应该工作:

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

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

echo $euInt;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM