我得到一个美国格式的 int 。
$UsInt = "67,450";
我需要将其转换为欧洲格式。
$EuInt = "67450";
我不能用str_replace()
virgule 来代替。不使用str_replace()
是强制性存款。
我不能使用number_format()
,因为我不能将逗号分隔的数字传递给这个函数
会存在一个PHP函数来做到这一点吗?还是有人已经遇到问题并且能够摆脱困境?
要“取消格式化”字符串,您可以使用
格式化字符串的示例:
$fmt = new NumberFormatter( 'en_US', NumberFormatter::DECIMAL );
$int = $fmt->parse("67,450");
这将为您提供原始整数,例如 67450 in $int
。
然后你可以使用number_format
或使用
手册中的示例:
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo $fmt->format($int);
然后将给出 67.450(以点作为千位分隔符)。
请注意,格式取决于区域设置。虽然语言环境的区域部分可能指向欧洲,但它本身并不是一个有效的语言环境。英国人使用逗号作为千位分隔符(67,450),而法国人使用空格(67 450),德国人使用点(67.450)。
有关解析和格式化数字的更多信息,请参阅:
编辑:@Gordon♦s 解决方案应该是最好的。
不是最快的方法,但它应该工作:
$usInt = '67,450';
$explode = explode(',', $usInt);
$euInt = '';
foreach ($explode as $val) {
$euInt .= $val;
}
echo $euInt;