Met de CurrencyFormatter-klasse kunt u numerieke waarden noteren als tekenreeksen waarin valutatekenreeksen en opgemaakte getallen zijn opgenomen, conform de conventies van een bepaalde landinstelling.
Wanneer u een nieuw CurrencyFormatter-object instantieert, wordt de standaardvaluta voor de desbetreffende landinstelling ingesteld.
In het volgende voorbeeld ziet u dat bij een CurrencyFormatter-object dat met een Duitse landinstelling is gemaakt, wordt aangenomen dat het valutabedrag in euro staat:
var cf:CurrencyFormatter = new CurrencyFormatter( "de-DE" );
trace(cf.format(1234567.89)); // 1.234.567,89 EUR
In de meeste gevallen moet u niet uitgaan van de standaardvaluta voor een landinstelling. Als de standaardlandinstelling van de gebruiker niet wordt ondersteund, wordt door de CurrencyFormatter-klasse een andere landinstelling als fallback toegewezen. Bij deze fallback kan een andere standaardvaluta van toepassing zijn. Bovendien wilt u waarschijnlijk ook dat de valutanotaties correct zijn in de ogen van de gebruiker, zelfs als de bedragen niet in de lokale valuta van de gebruiker staan. Zo wil een Canadese gebruiker bijvoorbeeld dat bedragen voor een Duits bedrijf in euro worden weergegeven, maar worden opgemaakt volgens de Canadese stijl.
De methode CurrencyFormatter.setCurrency() geeft de exacte valutatekenreeks en -symbool die moeten worden gebruikt.
In het volgende voorbeeld worden valutabedragen in euro weergegeven voor gebruikers in het Franse gedeelte van Canada:
var cf:CurrencyFormatter = new CurrencyFormatter( "fr-CA" );
cf.setCurrency("EUR", "€");
trace(cf.format(1234567.89)); // 1.234.567,89 EUR
Met de methode setCurrency() voorkomt u verwarring doordat u niet-ambigue valutasymbolen toepast. Bijvoorbeeld:
cf.setCurrency("USD","US$");
De methode format() geeft standaard een ISO 4217-valutacode weer die uit drie tekens bestaat, in plaats van het valutasymbool. ISO 4217-codes zijn niet ambigu en vereisen geen lokalisatie. Veel gebruikers geven echter de voorkeur aan valutasymbolen en niet aan de ISO-codes.
Met de CurrencyFormatter-klasse kunt u beter bepalen welk symbool moet worden gebruikt in een opgemaakte valutatekenreeks: een valutasymbool, zoals het dollar- of eurosymbool, of een ISO-valutatekenreeks die uit drie tekens bestaat, zoals USD of EUR. Een bedrag in Canadese dollars kan bijvoorbeeld worden weergegeven als $200 voor een gebruiker in Canada. Voor een gebruiker in de Verenigde Staten kan dit bedrag worden weergegeven als CAD 200. Met de methode formattingWithCurrencySymbolIsSafe() kunt u nagaan of het valutasymbool van het bedrag ambigu of onjuist is, gezien de landinstellingen van de gebruiker.
In het volgende voorbeeld wordt een waarde in euro opgemaakt in een notatie voor de landinstelling en-US. Afhankelijk van de landinstelling van de gebruiker, wordt bij de uitvoertekenreeks ofwel de ISO-valutacode of het valutasymbool toegepast.
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
}