F-gos 0 Denunciar post Postado Junho 22, 2010 Pessoal bom dia!! estou tendo dificuldades para fechar um formulario de orçamento em flash que exige um calculo com os valores digitados nos campos.text. Fiz a conta certinho mas na variavel que recebe o resultado ta aparecendo NaN.. segue a action da conta para verem: _global.campof = ((1+(4*_global.campo2/_global.campov2))*(_global.campo2 * _global.campo2) * _global.campo * _global.campo3)/_global.campov2; // as variaveis globais recebem os valores dos campos.text. ex: _global.campof = medidaf.text; Alguém sabe como resolver????? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Junho 22, 2010 Para transformar string em número você usar parseInt(string); Que ai resolve seu problema ;) Então todos os números que vem de text você da um parseInt neles. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Junho 22, 2010 Isso provavelmente é problema de cast. Poste o código completo ai. Abs Compartilhar este post Link para o post Compartilhar em outros sites
F-gos 0 Denunciar post Postado Junho 22, 2010 Para transformar string em número você usar parseInt(string); Que ai resolve seu problema Então todos os números que vem de text você da um parseInt neles. Abraços Berseck boa tarde!! Não deu certo fazer como você falou não. tbm tentei usando o number ex: _global.espessura = Number(_global.espessura); oq acontece é que os valores que estou somando não são inteiros. veja o diagrama do negocio: tenhos os campos input : a , b, c , d, e , f. os campos b, d, e, f recebem os valores do cambobox (onde o cliente escolhe a opção). ex: _global.espessura = campoB1.getValue(); _global.espessura = campoB2.getValue(); ... _global.espessura = campoB16.getValue(); e assim com os 3 campos. o campo c é gerado com a seguinte formula: c = b/0.7 e o campo a é gerado com a função que postei acima: a = ((1+(4*b/c))*b*b*e*f)/C; Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Junho 22, 2010 Bom ai você tem duas opções: parseInt(string); parseFloat(string); Esses dois vão transformar strings em valores numéricos parseInt é para números inteiros E float é para números quebrados Exemplo: str = "123"; trace(parseInt(str)); //output 123 str = "1.3434.23"; trace(parseInt(str)); //output 1 str = "123"; trace(parseFloat(str)); //output 123 str = "1.3434.23"; trace(parseFloat(str)); //output 1.343423 Lembrando pra ti que ele vai ignorar segundo ponto... e o flash não faz conta matemática com virgulas ;) Então acho que ai para resolver seu problema vai ser o parseFloat :) Da uma testada ai... Abraços Compartilhar este post Link para o post Compartilhar em outros sites
F-gos 0 Denunciar post Postado Junho 22, 2010 Bom ai você tem duas opções: parseInt(string); parseFloat(string); Esses dois vão transformar strings em valores numéricos parseInt é para números inteiros E float é para números quebrados Exemplo: str = "123"; trace(parseInt(str)); //output 123 str = "1.3434.23"; trace(parseInt(str)); //output 1 str = "123"; trace(parseFloat(str)); //output 123 str = "1.3434.23"; trace(parseFloat(str)); //output 1.343423 Lembrando pra ti que ele vai ignorar segundo ponto... e o flash não faz conta matemática com virgulas Então acho que ai para resolver seu problema vai ser o parseFloat Da uma testada ai... Abraços berseck beleza cara o parseFloat resolveu a parada.... agora uma ultima coisa.. os resultados estão aparecendo assim: 1.2222222222222 tem alguma funçãozinha para mostrar apenas 3 numeros após o ponto. tipo 1.222 ou 1.2222. ????? Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Junho 22, 2010 Se fosse as 3 tinha o toFixed(); que é nativo, da classe Number. Como é as2 tem os metodos alternativos você pode construir um metodo de formatar as casas decimais não é dificil não. Pode fazer assim tb: var num:Number = 67.8765999999; num *= 100; num = Math.round(num); num /= 100; trace(num); Abs Compartilhar este post Link para o post Compartilhar em outros sites