Você pode usar para converter um número escrito em no padrão brasileiro,
virgula para decimal e ponto para milhares. Não esqueça de após feito o
cálculo você obtém float como resposta, para mostrar pro seu usuário você
deverá fazer o processo inverso com o NumberFormatter pra converter
novamente em String com as devidas vírgulas e pontos.
Um detalhe, o Flex assim como outras linguagens tem problemas sérios com
operações básicas de matemática quando se trata de ponto flutuante (números
decimais, float, etc), fazendo com que contas do tipo:
1.05 + 1.03 + 1.02 + 1.9 = 5.0000000000001 (quando o resultado deveria
ser somente 5 )
Este 1 milionésimo de centavo dá pano pra manga. Verifique no Google a o
tópico, "O Flex não sabe somar".
public static function strBrToFloat(d:String, precisao:int = -1):Number {
var nf:NumberFormatter = new NumberFormatter();
nf.decimalSeparatorFrom = ",";
nf.decimalSeparatorTo = ".";
nf.thousandsSeparatorFrom = ".";
nf.thousandsSeparatorTo = ",";
nf.useThousandsSeparator = false;
nf.precision = precisao;
return Number(nf.format(d));
}
De: [email protected] [mailto:[EMAIL PROTECTED] Em nome de
Junio Gonçalves Vitorino
Enviada em: quinta-feira, 10 de abril de 2008 07:45
Para: [email protected]
Assunto: [flexdev] Re: String para numero
Number(sua variável);
2008/4/10 [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
galera, como posso converter um String "22,34" para numerico, so
consegui converter para um valor inteiro "22", eu preciso fazer uma
multiplicação com esse valor:
2 * 22,34 = 44,68
valeu
Lino
--
Atenciosamente,
Junio Vitorino - Belo Horizonte - Brasil
[EMAIL PROTECTED]
http://www.juniovitorino.com
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---