有没有办法使用 PHP NumberFormatter 类检索如下货币符号:
100,00 EUR
基本上,我想要的是 ISO 3 代码,而不是符号 €。
另一种方法是完全省略符号,但我仍然希望将类型保留为 NumberFormatter:CURRENCY。这个也不知道怎么办。
到底是关于 str_replace 吗?
您可以手动设置货币符号,使用
$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 格式为十进制数会更容易。