2013-09-16 58 views
0

有什麼辦法來檢索貨幣想與PHP NumberFormatter類下面的符號:PHP的NumberFormatter打印ISO 3貨幣代碼

100,00 EUR 

基本上代替的符號€我想要的ISO 3碼。

另一種方法是完全省略符號,但我仍然希望將類型保留爲NumberFormatter:CURRENCY。不知道如何做到這一點。

最後是關於str_replace的嗎?

+0

您是否擁有ISO貨幣代碼的數據源? IIRC PHP沒有內置的。 – Dai

回答

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作爲十進制數格式會更容易。