1
resposta

Problema em função de soma

Boa noite, sei que minha dúvida deve ser ridiculamente simples, mas como estou tendo meu primeiro contato com programação, acabo tendo dificuldades básicas, como no caso abaixo...

O resultado mostrado fica uma concatenação do nro1 mais o nro2 com o resultado da divisão. Ex.: Digito 20 + 10 + 30 / 2, em vez de me apresentar o resultado de "45" mostra uma concatenação "201015". Mas se na função soma eu substituir por qualquer outra operação... *, /, -, calcula corretamente sem concatenar. Já tentei colocar entres parênteses e não mudou nada.

function pulaLinha()   {

    document.write("<br><br>");
}

function mostra(frase)   {

    document.write(frase);
    pulaLinha();
}
function soma(nro1, nro2)   {

    return nro1 + nro2;
}

function divisao(nro3, nro4)   {

    return nro3 / nro4;
}

var nro1 = prompt("Digite o primeiro número da soma");
var nro2 = prompt("Digite o segundo número da soma");
var nro3 = prompt("Digite o primeiro número da divisão");
var nro4 = prompt("Digite o segundo número da divisão");
var resultado = soma(nro1, nro2) + divisao(nro3, nro4);

mostra("A soma dos resultados é " + resultado);

Grato pela atenção

1 resposta

Isso é um problema comum no Javascript, demorou um tempo pra eu entender também XD Quando você atribui um valor em uma variável com o prompt e usa a operação +, por algum motivo o javascript assume que os valores são Strings, por isso ele concatena. Mas quando você faz outras operações ele entende que são números. Pra resolver isso, tem uma função nativa do js chamada parseInt(); você passa um valor e essa função vai converter o valor pra int.