PHP NumberFormatter打印ISO 3货币代码

时间:2013-09-16 18:01:40

标签: php currency

有没有办法使用PHP NumberFormatter类检索货币符号,如下所示:

100,00 EUR

基本上不是符号€我想要ISO 3代码。

替代方法是完全省略符号,但我仍然希望将类型保持为NumberFormatter:CURRENCY。不知道怎么做。

最后是关于str_replace吗?

1 个答案:

答案 0 :(得分:1)

您可以使用

手动设置货币符号

$nf->setSymbol(\NumberFormatter::CURRENCY_SYMBOL, '<my symbol>');

&安培;然后使用format()方法进行格式化。但我想,那不是你想要的。例如:

$nf_en = new \NumberFormatter('en', \NumberFormatter::CURRENCY);
$nf_en->setTextAttribute(\NumberFormatter::CURRENCY_CODE, 'EUR');
$nf_en->setSymbol(\NumberFormatter::CURRENCY_SYMBOL, 'EUR');

$nf_de = new \NumberFormatter('de', \NumberFormatter::CURRENCY);
$nf_de->setTextAttribute(\NumberFormatter::CURRENCY_CODE, 'EUR');
$nf_de->setSymbol(\NumberFormatter::CURRENCY_SYMBOL, 'EUR');

echo $nf_en->format(1); // this will print 'EUR1.00'!
echo $nf_de->format(1); // this will print 'EUR 1,00'!

如果您将货币代码设置为'',则仍会有区域设置,其中格式化的字符串将以空格开始(或结束)。使用NumberFormatter格式化为十进制数字会更容易。