Ir para conteúdo

Arquivado

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

tiagosp

Expressão aritmética JS

Recommended Posts

Estou tentando aplicar uma simples expressão com js, porém o resultado não é como esperado:

var horasP = document.getElementById("horas_p").value; //Valor de entrada: 5
var minP = document.getElementById("min_p").value; // Valor de entrada: 45

horasP *= 60 + minP;

console.log(horasP);

saída: 30045

Ocorre uma concatenação na saída, ele executa somente a multiplicação.

Pensei ser um erro na minha expressão, então tentei:

horasP *= 60;
horasP += minP;

saída: 30045

Além disso, o operador "/=" simplesmente não funciona...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu problema não é a operação mas o desconhecimento dos operadores da linguagem e dos tipos de dados.

 

Informação:

O operador "+":  em javascript é usado para concatenar strings.

O operador "+": tem como propósito de cálculo apenas os tipo numéricos

 

Erro:

Seu erro foi calcular "strings" usando o operador de concatenação.

 

Solução:

Deve-se converter os dados dos inputs "string" para um tipo numérico como float ou Int

 

Ex: O parseInt está presente apenas no "minP" onde ocorreria a concatenação resultando no valor de "345"

function algoritmo() {
  var horasP = document.getElementById("horas_p").value; //Valor de entrada: 5
  var minP = document.getElementById("min_p").value; // Valor de entrada: 45

  horasP = horasP * 60 + parseInt(minP);

  console.log(horasP);
}

 Ex: Ideal em cálculos é trabalhar com todas as variáveis como números para garantir a exatidão

function algoritmo() {
  var horasP = parseInt(document.getElementById("horas_p").value); //Valor de entrada: 5
  var minP = parseInt(document.getElementById("min_p").value); // Valor de entrada: 45

  horasP = horasP * 60 + minP;

  console.log(horasP);
}

 

 

Ex: Jsbin: https://jsbin.com/jatoxocubo/edit?html,css,js,console,output

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por juniormatrix
      Olá
       
      Achei esse script aqui no fórum mesmo:
       
      $.validator.addMethod( "customEmail", function (value, element) { return this.optional(element) || /^[\w-\.]+@fulano\.com\.br$/i.test(value); }, "Por favor, insira um e-mail válido com o domínio @fulano.com.br" ); $("#formulario").validate({ ignore: ".ignore", rules: { empresa: { required: true }, nome: { required: true }, contato: { required: true }, celular: { required: true }, email: { required: true, email: true, customEmail: true }, }, }); Testei e funcionou perfeitamente, mas gostaria que liberasse mais e-mails válidos, ao invés de apenas um.

      Tem como fazer? 
       
      Se alguém puder ajudar, fico muito grato.
    • Por Alessandro Bodão
      Salve galerinha, passando pra mostrar pra vocês o novo projeto de marca que a Jatobá Estúdio desenvolveu, espero que gostem.   https://www.behance.net/gallery/166555627/Fernanda-Pinheiro-Nutricionista-Esportiva
    • Por rogerblower
      Boas pessoal, estou precisando de um calendário para agenda com crud para agendamento, mas teria que ser free.
      Obrogado.
    • Por Sapinn
      Fala galera! Tenho um site que possui alguns icones que são puxados da biblioteca flaticon , o problema é que de uma hora pra outra esses icones pararam de aparecer. No meu ambiente local funciona, mas no ambiente de produção eles não aparecem e eu recebo o seguinte erro no console: Failed to load resource: the server responded with a status of 404 () 
       
      Alguém saberia como resolver isso?
    • Por mateus.andriollo
      Carrego um conteudo Ajax e junto com ele vem HTML e JS, existe um marcador que está relacionado a um elemento HTML, quando eu clico e este elemento tem um atributo exemplo data-onload="funcaoOla()" esta função tbm carregada pelo ajax deve ser executada.
       
      Dúvida como eu faço uma chama de função desta forma, seria como exec("funcaoOla")
       
×

Informação importante

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