Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

F-gos

transformar varialvel.text em number

Recommended Posts

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

Isso provavelmente é problema de cast. Poste o código completo ai.

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para transformar string em número você usar parseInt(string);

Que ai resolve seu problema Imagem Postada

 

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

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

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 Imagem Postada

Então acho que ai para resolver seu problema vai ser o parseFloat Imagem Postada

 

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.