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() 메서드는 기본적으로 통화 심볼 대신에 3문자 ISO 4217 통화 코드를 표시합니다. ISO 4217 코드는 명확하며 지역화할 필요가 없습니다. 하지만 많은 사용자는 ISO 코드보다는 통화 심볼 표시를 선호합니다.
CurrencyFormatter 클래스는 서식이 지정된 통화 문자열에 어떤 통화 심볼(예: 달러 기호 또는 유로 기호)을 사용할지 또는 3문자 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
}