Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Ao invés de somar, o programa realiza uma concatenação.

Boa noite. Tentei criar um programa simples que informa o lucro de um projeto, baseado no exercício da aula. Só que na hora de somar, ocorre uma concatenação no lugar da soma . Estou tendo dificuldade para solucionar este problema e ficaria muito grato, caso alguém tenha alguma dica.

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
    }

    function calculaLucro(orcamento, despesas, arrecadacao){
        return (orcamentoInformado - despesasInformadas) + arrecadacaoInformada;
    }
    var orcamentoInformado = prompt("Informe o valor de orçamento do projeto.");
    var despesasInformadas = prompt("Informe o valor das despesas do projeto.");
    var arrecadacaoInformada = prompt("Informe o valor de arrecadação do projeto.");

    var lucro = calculaLucro(orcamentoInformado, despesasInformadas, arrecadacaoInformada);
    mostra("O valor de lucro do projeto foi de " + lucro + " reais.");
</script>
2 respostas
solução!

Oi Marcus

Em relação a concatenação você precisa fazer um parseInt ou parseFloat quando recebe os valores do prompt, ele sempre recebe como string mesmo se você informar só números.

var orcamentoInformado = parseInt(prompt("Informe o valor de orçamento do projeto."));
var despesasInformadas = parseInt(prompt("Informe o valor das despesas do projeto."));
var arrecadacaoInformada = parseInt(prompt("Informe o valor de arrecadação do projeto."));

mas tem outro detalhe com relação a função, você está passando os parâmetros que são orcamentoInformado, despesasInformadas, arrecadacaoInformada e na função você criou orcamento, despesas, arrecadacao então você precisa utilizar o mesmo nome dos parâmetros criados da função, o seu código ainda executa certinho porque ele está buscando as variáveis de fora, mas o correto é fazer assim:

function calculaLucro(orcamento, despesas, arrecadacao) {
    return orcamento - despesas + arrecadacao;
}

Muito obrigado!! Fico imensamente grato pela ajuda.