La clase CurrencyFormatter aplica a valores numéricos formato de cadenas que contienen cadenas de divisa y números con formato, según las convenciones de una configuración regional específica.
Cuando se crea una nueva instancia del objeto CurrencyFormatter, establece su divisa en la divisa predeterminada de la configuración regional seleccionada.
El siguiente ejemplo muestra cómo un objeto CurrencyFormatter creado con una configuración regional de alemán asume que las cantidades de divisa están en euros:
var cf:CurrencyFormatter = new CurrencyFormatter( "de-DE" );
trace(cf.format(1234567.89)); // 1.234.567,89 EUR
En la mayoría de los casos no se debe depender de la divisa predeterminada en una configuración regional. Si la configuración regional del usuario no se admite, la clase CurrencyFormatter asigna una configuración regional de repuesto. La configuración regional de repuesto puede tener una divisa predeterminada distinta. Además, normalmente querrá que los formatos de divisa tengan un aspecto correcto para el usuario, incluso si las cantidades no están en la divisa local del usuario. Por ejemplo, un usuario canadiense quiere ver los precios de una empresa alemana en euros, pero con formato canadiense.
El método CurrencyFormatter.setCurrency() especifica la cadena de divisa exacta y el símbolo que debe utilizarse.
El siguiente ejemplo muestra cantidades de divisa en euros a usuarios en la parte francófona de Canadá:
var cf:CurrencyFormatter = new CurrencyFormatter( "fr-CA" );
cf.setCurrency("EUR", "€");
trace(cf.format(1234567.89)); // 1.234.567,89 EUR
El método setCurrency() también se puede utilizar para reducir la confusión y establecer símbolos de divisa sin ambigüedades. Por ejemplo:
cf.setCurrency("USD","US$");
De forma predeterminada, el método format() muestra un código de divisa ISO 4217 de tres caracteres en vez del símbolo de la divisa. Los códigos ISO 4217 son inequívocos y no requieren localización. Sin embargo, muchos usuarios prefieren utilizar los símbolos de divisa en vez de los códigos ISO.
La clase CurrencyFormatter puede ayudarle a decidir si una cadena de divisa con formato debe utilizar un símbolo de divisa, como el símbolo del dólar o del euro, o si debe utilizar una cadena de divisa ISO de tres caracteres, como USD o EUR. Por ejemplo, una cantidad en dólares canadienses puede visualizarse como $200 para un usuario en Canadá. Para un usuario en España, sin embargo, se visualizaría como CAD 200. Utilice el método formattingWithCurrencySymbolIsSafe() para determinar si el símbolo de divisa de la cantidad será ambiguo o incorrecto teniendo en cuenta la configuración regional del usuario.
El siguiente ejemplo aplica formato de configuración regional en-US a un valor en euros. En función de la configuración regional del usuario, la cadena de salida usará el código de divisa ISO o el símbolo de la divisa.
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
}