0

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

100,00 EUR

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

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

到底是关于 str_replace 吗?

4

1 回答 1

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使用to 格式为十进制数会更容易。

于 2013-09-16T18:45:17.130 回答