Ir para conteúdo
raphaelgs

Resultado da minha soma esta dando NaN

Recommended Posts

não estou conseguindo encaixar a logica para fazer a soma dar sem NaN

sendo que o campo do aluguel esta com o value vazio porque estou simulando caso o usuário não tenha aluguel.

 

segue abaixo meu código

<p class="campo1"><span>Mensalidade Faculdade: </span>R$<input id="mensalidade" value="10"></p>
<p class="campo1"><span>Aluguel: </span>R$<input id="aluguel" value=""></p>
<p class="campo1"><span>Água: </span>R$<input id="agua" value="30"></p>
<p class="campo1"><span>Luz: </span>R$<input id="luz" value="10"></p>
<script type="text/javascript">
    function despesas(){

        var mensalidade = document.getElementById("mensalidade").value;
        var aluguel = document.getElementById("aluguel").value;
        var agua = document.getElementById("agua").value;
        var luz = document.getElementById("luz").value;
        
        var total = parseInt(mensalidade) + parseInt(aluguel) + parseInt(agua) + parseInt(luz);

        document.getElementById("resultado").innerHTML = total;
    }

</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o seu problema é simples você está tendo o erro 'NaN', porque o parseInt não consegue converter vazio para inteiro, é necessário que você crie uma validação e quando o valor for vazio deve substituir por zero (0). Mas o correto mesmo é que você utilizasse parseFloat pois está lidando com valores monetários e é muito comum lidar com valores fracionados.

 

HTML:

<p class="campo1"><span>Mensalidade Faculdade: </span>R$<input id="mensalidade" value="10"></p>
<p class="campo1"><span>Aluguel: </span>R$<input id="aluguel" value=""></p>
<p class="campo1"><span>Água: </span>R$<input id="agua" value="30"></p>
<p class="campo1"><span>Luz: </span>R$<input id="luz" value="10"></p>

<label>
  Resultado:
  <span id="resultado"></span>
</label>

<button onclick="despesas()">Calcular despesas</button>

JS:

function despesas(){
  var mensalidade = document.getElementById("mensalidade").value;
  var aluguel = document.getElementById("aluguel").value;
  var agua = document.getElementById("agua").value;
  var luz = document.getElementById("luz").value;

  var total = validValue(mensalidade) + validValue(aluguel) + validValue(agua) + validValue(luz);

  document.getElementById("resultado").innerHTML = total;
}

function validValue(value) {
  if(!value) {
    return 0;
  } else {
    return parseInt(value);
  }
}

exemplo: https://jsbin.com/sifeyugavu/edit?html,js,console,output

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por martinazzo
      não consigo apagar, então deixei assim... se alguém conseguir por favor
    • Por rd111072
      Olá! Preciso pegar o valor de uma variável javascript, postar para uma página php pra criar uma variável session php.
      aqui tento passaar a variável js:
       
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script type="text/javascript"> var valor = ""; $(document).ready(function() { $('input:radio[name=aviso]').click(function() { //Executa Loop entre todas as Radio buttons com o name de valor $('input:radio[name=aviso]').each(function() { //Verifica qual está selecionado if ($(this).is(':checked')) valor = parseInt($(this).val()); }) alert(valor); $.post( "cria_session.php", { aviso: valor} ); }) }) </script> Aqui tento, ao menos, imprimir na tela:
      <? echo "Olá <script>document.write(valor)</script>"?> Só o que funciona é o alert ^^^.

      Alguém sabe?
       
    • Por Robson Augusto
      Galera se alguém souber o que ocorre,  é o seguinte, não acredito que possa ser Problema de SEO, mas vamos lá meu site anuncicarbh.com, não aparece em pesquisa feitas pelo computador, com a palavra chave "seminovos bh", ele aparece na primeira oscilando para segunda pagina do bing e yahoo, fazendo a pesquisa pelo telefone, ja no pc ele nao aparace mais no yahoo, mas continua a aparecer no bing, ja no google ele teve pequenas aparições na terceira página, agora em ambas as pesquisas de pc e celular ja não aparece mais no google... So aparece atualmente no google, pesquisando pelo nome do site... Alguem saberia me dizer o por que disso? será SEO?
    • Por danilosilva222
      Olá pessoal, boa tarde! 
      Sou novato em programação e aqui no fórum é a minha primeira postagem, e tenho uma dúvida.
      Com Javascript, é possível desenvolver um sistema web completo para gestão, como por exemplo, academias, lojas, supermercados, etc..? 
      Desde já agradeço a atenção de vocês. 
×

Informação importante

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