La classe CurrencyFormatter consente di formattare valori numerici in stringhe contenenti stringhe di valuta e numeri formattati, in base alle convenzioni di impostazioni internazionali specifiche.
Quando create un'istanza di un nuovo oggetto CurrencyFormatter, la valuta viene impostata sul valore predefinito per le impostazioni internazionali specificate.
Nell'esempio seguente viene mostrato che l'oggetto CurrencyFormatter creato utilizzando le impostazioni internazioni del tedesco presume che gli importi valuta siano in Euro:
var cf:CurrencyFormatter = new CurrencyFormatter( "de-DE" );
trace(cf.format(1234567.89)); // 1.234.567,89 EUR
Nella maggior parte dei casi non basatevi sulla valuta predefinita per le impostazioni internazionali. Se le impostazioni internazionali predefinite dell'utente non sono supportate, la classe CurrencyFormatter assegna impostazioni internazionali di fallback. Le impostazioni internazionali di fallback potrebbero avere una valuta predefinita diversa. Inoltre, occorre in genere che l'aspetto dei formati valuta sia corretto per l'utente, anche se gli importi non compaiono nella valuta locale dell'utente. Ad esempio, è possibile che un utente canadese desideri vedere i prezzi di un'azienda tedesca in Euro, ma formattati nello stile canadese.
Il metodo CurrencyFormatter.setCurrency() specifica la stringa di valuta e il simbolo valuta da utilizzare.
Nell'esempio seguente vengono mostrati gli importi valuta in Euro a utenti della regione francofona del Canada:
var cf:CurrencyFormatter = new CurrencyFormatter( "fr-CA" );
cf.setCurrency("EUR", "€");
trace(cf.format(1234567.89)); // 1.234.567,89 EUR
Il metodo setCurrency() può anche essere utilizzato per ridurre la confusione impostando simboli valuta non ambigui. Ad esempio:
cf.setCurrency("USD","US$");
Per impostazione predefinita il metodo format() visualizza un codice valuta ISO 4217 di tre caratteri anziché il simbolo di valuta. I codici ISO 4217 sono univoci e non richiedono la localizzazione. Tuttavia molti utenti preferiscono vedere simboli di valuta anziché codici ISO.
La classe CurrencyFormatter consente di scegliere il simbolo utilizzato da una stringa di valuta formattata: un simbolo valuta, come un simbolo di dollaro o un simbolo di euro, o una stringa di valuta ISO a tre caratteri, ad esempio USD o EUR. Ad esempio, un importo in dollari canadesi può essere visualizzato come $200 per un utente in Canada, ma come CAD 200 per un utente negli Stati Uniti. Utilizzate il metodo formattingWithCurrencySymbolIsSafe() per determinare se il simbolo di valuta dell'importo sarà ambiguo o errato in base alle impostazioni internazionali dell'utente.
Nell'esempio seguente, un valore in Euro viene formattato nelle impostazioni internazionali en-US. In base alle impostazioni internazionali dell'utente, la stringa di output utilizza il codice valuta ISO o il simbolo di valuta.
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
}