Ir para conteúdo

POWERED BY:

Arquivado

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

caio1380

[Resolvido] Soma

Recommended Posts

Bom Dia,

 

Como faço para somar um valor fixo + uma variavel?

 

Ex: 100 + "campo" A

 

Se coloco direito, 100+A ele junta os dois, ao invés de somar.

 

Agradeço desde já.

 

At.

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja sobre as funções parsetInt() e parseFloat()

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você colocar aspas, ele vai tratar como string, e um 'a' string, não tem valor float mesmo.

 

a no caso é uma variavel ?

oque retorna se você der um alert nela?

 

oque eu te disse, era para fazer:

alert( 273 + parseFloat(a) );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você 'entendeu' oque eu disse? se é uma variável, não coloque aspas nela.

 

NaN = Not a Number

 

Mostre como você está tentando fazer. Isole o minimo de código HTML e JS em que ocorre esse problema, e poste aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você não responder, não tenho como te ajudar

Mostre como você está tentando fazer. Isole o minimo de código HTML e JS em que ocorre esse problema, e poste aqui.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe a demora.

 

Formula completa em excel:

=a-(9,3+((LOG10(b*0,422)-1)/10)+(-13,12*LOG10(e+273)+34,55)-(LOG10(c)-0,4)-(LOG10(d)))

Formula completa em Javascript (não funcionando)

id('resultado').value = a-(9.3+((Math.log(b*0.422))/(Math.log(10))-1)/10)+((-13.12)*(Math.log((273) + parseFloat(e)))/(Math.log(10) + parseFloat(34.55))-((Math.log(c))/(Math.log(10))-0.4)-((Math.log(d))/(Math.log(10)));

Dividindo por partes: - Parte 1 (Funciona)

=a-(9.3+((Math.log(b*0.422))/(Math.log(10))-1)/10)

Dividindo por partes: - Parte 2 - Sem o +34,55 (Funciona)

(-13.12)*(Math.log((273) + parseFloat(e)))/(Math.log(10))

Dividindo por partes: - Parte 2 - Com o +34,55 (Não Funciona - Resultado errado)

(-13.12)*(Math.log((273) + parseFloat(e)))/(Math.log(10) + parseFloat(34.55));

Dividindo por partes: - Parte 3 - (Não Funciona)

-((Math.log(c))/(Math.log(10))-0.4)

Dividindo por partes: - Parte 4 - (Não Funciona)

  -((Math.log(d))/(Math.log(10)));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, que conta complicada, hein? :o

 

Separei por partes conforme você exemplificou no post acima, e criei o script:

<script type="text/javascript">
var a = 12;
var b = 14;
var c = 34;
var d = 56;
var e = 89;
var parte1 = a;
var parte2 = (9.3+((Math.log(b*0.422))/(Math.log(10))-1)/10);
var parte3 = (-13.12)*(Math.log((273) + parseFloat(e)))/(Math.log(10) + parseFloat(34.55));
var parte4 = (Math.log(d))/(Math.log(10));

var resultado = a-parte1-parte2-parte3-parte4;
alert(resultado);
</script>

O script está funcionando, porém não sei se a conta está certa. Seria bom você postar um exemplo com os valores das variáveis, e o resultado esperado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Klonder,

 

Seu script separado por partes me ajudou muito.

 

Agora deu certo!

Finalmente...

 

Ainda me resta uma duvida, como faço para o usuario poder utilizar virgula, e o java reconhecer como ponto?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

deixe o usuario digitar a virgula normalmente, e antes de fazer o calculo, use um replace

 

http://www.w3schools.com/jsref/jsref_replace.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script type="text/javascript">
var a = 12;
var b = 14;
var c = 34;
var d = 56;
var e = 89;
var parte1 = a;
var parte2 = (9.3+((Math.log(b*0.422))/(Math.log(10))-1)/10);
var parte3 = (-13.12)*(Math.log((273) + parseFloat(e)))/(Math.log(10) + parseFloat(34.55));
var parte4 = (Math.log(d))/(Math.log(10));


replaceAll('.',',');
var resultado = a-parte1-parte2-parte3-parte4;
alert(resultado);
</script>

Assim?

 

O script parou de funcionar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui assim:

 

        var a = id('a').value;
        a = a.replace( ",","." );

        var b = id('b').value;
        b = b.replace( ",","." );

        var c = id('c').value;
        c = c.replace( ",","." );

O codigo agora está pronto!

 

Agora preciso colocar sistema.

 

No sistema, cada imput já tem o seu nome:

<input type="text" id="temp" name="temp" class="campo"/>

A unica maneira de eu fazer é trocando as variaveis do codigo JS ("a", "b", "c") pelos nomes que já estão nos inputs?

Ou existe alguma maneira de o input ter dois "id" e dois "name"??

 

O ideal seria a 2º opção, pois se eu precisar usar em mais de um lugar, vou precisar fazer outro código.

 

Quero limitar as casas decimais apenas do resultado, ou seja, do campo

 

var resultado = a-parte1-parte2-parte3-parte4;

 

Já tentei toFixed, porem acho que estou utilizando errado, pois não funciona.

 

       'resultado'.toFixed(2);
        id('resultado').value = a - b;

Qual o problema aqui?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, você está, implicitamente, pedindo para nós fazermos! B)

 

Tenta ir desenvolvendo algo aê. Estude um pouco.

 

A unica maneira de eu fazer é trocando as variaveis do codigo JS ("a", "b", "c") pelos nomes que já estão nos inputs?

Não! Atribui à variável um valor para pegar pelo nome! Assim:

 

var a = document.getElementsByTagName("name")[0];
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Thiago,

 

Assumo que eu não tenho muito tempo para ficar estudando no momento. Pois essa não é minha área. Estou "quebrando um galho".

Porem, admiro e concordo com sua posição de não dar os códigos prontos, pois assim, nunca iremos(Brasil) crescer...

 

Eu já consegui fazer o script inteiro funcionar, já implementei ele, não da forma que eu gosto que é tudo organizado. Ficou uma salada só, mais no momento, é isso que tenho.

Quando tiver com mais tempo, tenho interesse em estudar e desenvolver um sistema mais pratico e organizado.

 

Mas, como tenho de colocar no ar o quanto antes para os usuários utilizarem esta nova ferramenta, peço sua ajuda quanto a questão das casas decimais, pois só falta isso.

 

Obrigado a todos que me ajudaram MUITO aqui no forum.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo. Desculpa se as palavras foram fortes... xD

 

Para arredondar, tente usar o Math.round().

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Edit

 

Falei babozeira. É com toFixed() mesmo. Look:

 

var num = 1.6789;
alert(num.toFixed(2));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais é isto que eu estava fazendo, a unica diferença era o ordem. Tentei nessa ordem e o script para de funcionar tb.

 

id(resultado).value = a - b;
resultado.toFixed(2);

 

Ja tentei com as ' ' e sem tb, nenhum funciona.

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.