CurrencyFormatter 類別會根據特定地區設定的慣例,將數值格式化為含有貨幣字串和格式化數字的字串。
當您初始化新的 CurrencyFormatter 物件時,該物件會將其貨幣設為給定地區設定的預設貨幣。
下列範例顯示使用德文地區設定所建立的 CurrencyFormatter 物件,假設貨幣金額是歐元:
var cf:CurrencyFormatter = new CurrencyFormatter( "de-DE" );
trace(cf.format(1234567.89)); // 1.234.567,89 EUR
在大部分情況下,請不要依賴地區設定的預設貨幣。如果不支援使用者的預設地區設定,則 CurrencyFormatter 類別會指定後援地區設定。後援地區設定可能會使用不同的預設貨幣。此外,您一般也會想要使用者看到正確的貨幣格式,即使金額的單位並非使用者的當地貨幣。例如,加拿大使用者想要看到德國公司的歐元價格,但是要以加拿大樣式進行格式化。
CurrencyFormatter.setCurrency() 方法指定確切的貨幣字串以及使用的貨幣符號。
下列範例是對加拿大的法區使用者顯示歐元的貨幣金額:
var cf:CurrencyFormatter = new CurrencyFormatter( "fr-CA" );
cf.setCurrency("EUR", "€");
trace(cf.format(1234567.89)); // 1.234.567,89 EUR
setCurrency() 方法也可以用來設定明確的貨幣符號,以減少混淆。例如:
cf.setCurrency("USD","US$");
format() 方法預設會顯示三個字元的 ISO 4217 貨幣代碼,而非貨幣符號。ISO 4217 貨幣代碼十分明確,因此並不需要當地語系化。不過,許多使用者都偏好看到貨幣符號,而非 ISO 代碼。
CurrencyFormatter 類別可協助您決定格式化的貨幣字串所使用的貨幣符號 (如美元符號或歐元符號),或使用三個字元的 ISO 貨幣字串 (例如 USD 或 EUR)。例如,針對加拿大使用者,加拿大幣金額會顯示為 $200。不過,針對美國使用者,則會顯示為 CAD 200。使用 formattingWithCurrencySymbolIsSafe() 方法,決定指定使用者地區設定的情況下,金額的貨幣符號為模稜兩或不正確。
下列範例會將歐元的值格式化為 en-US 地區設定的格式。根據使用者的地區設定,輸出字串會使用 ISO 貨幣代碼或貨幣符號。
var cf:CurrencyFormatter = new CurrencyFormatter( "en-CA");
if (cf.formattingWithCurrencySymbolIsSafe("USD"))
{
trace(cf.format(1234567.89, true)); // $1,234,567.89
}
else
{
cf.setCurrency("USD", "$");
trace(cf.format(1234567.89)); // USD1,234,567.89
}