【问题标题】:PHP NumberFormatter print ISO 3 currency codePHP NumberFormatter 打印 ISO 3 货币代码
【发布时间】:2013-09-16 18:01:40
【问题描述】:

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

100,00 EUR

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

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

到底是关于str_replace的吗?

【问题讨论】:

  • 您有 ISO 货币代码的数据源吗? IIRC PHP 没有内置的。

标签: php currency


【解决方案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 格式化为十进制数会更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2010-11-12
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 2014-06-14
    相关资源
    最近更新 更多