Klassen CurrencyFormatter formaterar numeriska värden till strängar som innehåller valutasträngar och formaterade tal, i enlighet med konventionerna för ett visst språkområde.
När du instansierar ett nytt CurrencyFormatter-objekt, anges valutan till standardvalutan för språkområdet.
I följande exempel visas att ett CurrencyFormatter-objekt som skapats med det tyska språkområdet utgår från att valutabelopp ska vara i euro:
var cf:CurrencyFormatter = new CurrencyFormatter( "de-DE" );
trace(cf.format(1234567.89)); // 1.234.567,89 EUR
Det är oftast bäst att inte förlita sig på standardvalutan för ett språkområde. Om användarens standardspråkområde inte stöds tilldelar klassen CurrencyFormatter ett alternativt språkområde. Det alternativa språkområdet kanske har en annan standardvaluta. Dessutom är det ofta viktigt att valutaformat ser korrekta ut för användaren, även om beloppen inte anges i användarens lokala valuta. En kanadensisk användare kanske vill se ett tyskt företags priser i euro, men formaterade enligt det kanadensiska formatet.
Metoden CurrencyFormatter.setCurrency() anger exakt vilken valutasträng och valutasymbol som ska användas.
I följande exempel visas valutabelopp i euro för användare i den fransktalande delen av Kanada:
var cf:CurrencyFormatter = new CurrencyFormatter( "fr-CA" );
cf.setCurrency("EUR", "€");
trace(cf.format(1234567.89)); // 1.234.567,89 EUR
Metoden setCurrency() kan också användas för större tydlighet genom användning av entydiga valutasymboler. Till exempel:
cf.setCurrency("USD","US$");
Som standard visar metoden format() en ISO 4217-valutakod som består av tre bokstäver, istället för en valutasymbol. ISO 4217-koder är entydiga och kräver ingen lokalisering. Men många användare föredrar valutasymboler istället för ISO-koder.
Klassen CurrencyFormatter kan hjälpa dig att avgöra vilken formaterad valutasträng som ska användas för en valutasymbol, till exempel ett dollartecken eller eurotecken, eller en ISO-valutasträng med tre bokstäver, till exempel USD eller EUR. Ett belopp i kanadensiska dollar kan visas som $200 för en användare i Kanada. För en användare i USA kommer det emellertid att visas som CAD 200. Använd metoden formattingWithCurrencySymbolIsSafe() för att avgöra om beloppets valutasymbol blir oklar eller felaktig beroende på användarens språkområdesinställningar.
I exemplet nedan formateras ett värde i euro till ett format för språkområdet en-US. Beroende på användarens språkområde används för utdatasträngen antingen ISO-valutakoden eller valutasymbolen.
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
}