Números reais com vírgula e não ponto no FLEX [RESOLVIDO]
12 respostas
EugenioMonteiro
Como eu faço para ler um número de um TextInput (Adobe Flex) de modo que ele seja convertido pelo formato de números brasileiro brasileiro e não pelo americano?
Por exemplo:
Se eu digitar 9.5, o sistema aceita converter de texto para número, porém se eu digitar 9,5, não funciona a conversão.
Esqueci de um detalhe: não falei que se tratava de FLEX.
H
henrique.marino
Se vc quiser trafegar números entre Java e Flex, vc terá que converter esse número já no Flex. Uma solução seria utilizar o NumberFormatter para transformar um número 1.000,01 (padrão Brasileiro) para 1,000.01 padrão Americano.
A utilização do NumberFormatter é tranquilo, da uma olhada na doc, se vc não conseguir avisa…
Tudo bem, com o NumberFormatter eu consegui formatar os valores e mostrá-los nos campos. Mas, e agora como eu faço para pegar os números formatados com vírgula e transformá-los para Number? Quando estão separados por ponto, o construtor de Number aceita, porém com vírgula não funciona.
F
fabiophx
Uma coisa q esqueci de comentar sobre o componente NumericInput é q para pegar o valor como Number é só utilizar a propriedade value. Toda digitação seta esta propriedade utilizando a função toNumber.
Fabio da Silva
EugenioMonteiro
fabiophx, como eu faço para colocar esse componente no meu sistema? Eu quero colocá-lo na paleta visual.
F
fabiophx
Vc pode colocar os fontes diretamente com os teus.
Ou vc pode criar um Flex Library Project e colocar os fontes neste projeto, ao compilar ele irá gerar um .swc, e no projeto q vc irá usá-lo vc vai em Project > Properties > Flex Build Path > Library Path e clica em um dos botões da direita.
Fabio da Silva
H
henrique.marino
Eugênio, vc terá que ter um NumberFormatter para transformar de US para BR e um outro para transformar BR para US…
O number formatter vai retornar uma string, ai é só fazer var number:Number = Number(valorFormatado). Neste caso o cast é utilizado para fazer a CONVERSÃO do tipo String para Number, por isso funciona…
[]s,
EugenioMonteiro
Resolvi o problema fazendo uma função que retorna Number. Essa função pega a String retornada pelo NumberFormatter, substitui a vírgula por ponto e retorna.