我以美国格式获得了一个int。
$UsInt = "67,450";
我需要以欧洲格式转换它。
$EuInt = "67450";
我无法使用str_replace()
替换virgule。不要使用str_replace()
是强制性存款。
我无法使用number_format()
,因为我无法将逗号分隔的数字传递给此函数
是否存在PHP函数来执行此操作?或者某人已经遇到问题并且能够离开?
答案 0 :(得分:3)
答案 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;