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

Erro ao calcular uma média aritmética

Estou fazendo uns exercícios de JavaScript, e até agora estava tirando de letra, inclusive exercícios semelhantes, porém travei em um aqui e não sei porque está dando erro.

O exercício pede para ler três números e fazer o cálculo da média aritmética, porém o output sai completamente errado. Vou colar o trecho do meu código abaixo:

<form>
        <fieldset>
            <div>
                <label for="primeiro" name="um">Primeiro número: </label>
                <input type="text" id="primeiro" required>
                <label for="segundo" name="dois">Segundo número: </label>
                <input type="text" id="segundo" required>
                <label for="terceiro" name="tres">Terceiro número: </label>
                <input type="text" id="terceiro" required>
            </div>
        </fieldset>
        <button type="button" id="btn" onclick="calcular()">Calcular média</button>
    </form>
</body>

    <script>
        function calcular() {
            var n1 = document.getElementById("primeiro").value;
            var n2 = document.getElementById("segundo").value;
            var n3 = document.getElementById("terceiro").value;

            console.log((n1+n2+n3)/3);
            /*alert("A média dos números informados é: ", (n1+n2+n3)/3);*/
        }
    </script>

Obrigado!

4 respostas

Desculpem, postei antecipadamente. Resolvi usando o "parseFloat" na hora de jogar o valor do input pra dentro da variável.

Exemplo:
var n1 = parseFloat(document.getElementById("primeiro").value);

Mas uma dúvida permanece: porque ele não consegue pegar o valor numérico, tendo eu que fazer o parse, mesmo que altere o type do input para number?

Obrigado!

solução!

Fala ai Alberto, tudo bem? O parse é necessário pois a fução .value retornar o conteúdo dos campos em string e não em tipos específicos já convertidos.

Espero ter ajudado.

Obrigado, Matheus! Dúvida sanada! Abrs.

Magina Alberto, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.