A classe NumberFormatter formata valores numéricos (do tipo int, uint, ou Number) de acordo com as convenções de uma localidade especifica.
O exemplo a seguir mostra a maneira mais simples de formatar um número utilizando as propriedades de formatação padrão fornecidas pelo sistema operacional do usuário:
var nf:NumberFormatter = new NumberFormatter(LocaleID.DEFAULT);
trace(nf.formatNumber(-123456.789))
O resultado pode variar com base nas configurações de localidade e das preferências do usuário. Por exemplo, se a localidade do usuário é fr-FR o valor formatado deve ser:
-123.456,789
Caso você queira apenas formatar um número para uma localidade especifica, independente das configurações de usuário, defina o nome da localidade especificamente. Por exemplo:
var nf:NumberFormatter = new NumberFormatter("de-CH");
trace(nf.formatNumber(-123456.789));
Nesse caso, o resultado é:
-123'456.789
O método formatNumber() obtém um Number como parâmetro. A classe NumberFormatter também tem um método formatInt() que obtém um int (inteiro) como entrada e um método formatUint() que obtém um uint.
Você pode controlar explicitamente a lógica de formatação definindo as propriedades da classe NumberFormatter, como mostra este exemplo:
var nf:NumberFormatter = new NumberFormatter("de-CH");
nf.negativeNumberFormat = 0;
nf.fractionalDigits = 5;
nf.trailingZeros = true;
nf.decimalSeparator = ",";
nf.useGrouping = false;
trace(nf.formatNumber(-123456.789)); //(123456.78900)
Este exemplo cria primeiro um objeto NumberFormatter e, em seguida:
-
define o formato de número negativo para utilizar parênteses (como em aplicativos financeiros);
-
define o número de dígitos depois do separador decimal para 5;
-
especifica que os zeros à direita devem ser utilizados para garantir cinco casas decimais,
-
define o separador decimal como vírgula;
-
informa ao formatador para não utilizar qualquer separador de agrupamento.
Nota:
Caso alguma alteração seja feita nessas propriedades, o formato de número resultante não corresponderá ao formato de preferência para a localidade especificada. Utilize algumas dessas propriedades somente quando a detecção de localidade não for importante, quando é preciso obter um controle detalhado sobre um único aspecto do formato como, por exemplo, o número de zeros à direita ou quando o usuário solicitar a alteração diretamente, pelo Painel de Controle do Windows.