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

Quando ao invés de multiplicar altura * altura eu elevei ao quadrado houve diferença nos resultados

<meta charset="UTF-8">


<script>

    function pulaLinha() {

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

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    function calculoIMC(peso, altura) {
        var IMC = Math.round(peso / (altura ^ 2));
        mostra ("IMC Calculado é " + IMC)


    }

    var pesoFlavio = 73;
    var alturaFlavio = 1.71;
    calculoIMC(pesoFlavio, alturaFlavio);

    var pesoAmigo = 68;
    var alturaAmigo = 1.72;
    calculoIMC(pesoAmigo, alturaAmigo);




</script>
6 respostas
solução!

Oi Eduardo, eu particularmente nunca vi ao quadrado ser usado assim em javascript. A maneira mais usada é com * e com Math.pow()

var IMC = Math.round(peso / (altura * altura));
var IMC = Math.round(peso / Math.pow(altura, 2));

Olá Eduardo!

Este operador (^) tem outra função no JavaScript e não a função de elevar ao quadrado como ele é utilizado no Excel por exemplo, onde realmente 2 ^ 2 = 4.

O correto é você utilizar uma das duas formas que a Vânia colocou, ou com * ou com Math.pow().

Se tiver curiosidade segue abaixo o link com todos os operadores da linguagem:

MDN - Expressões e operadores

Abraços e sucesso nos estudos!

Muito obrigado! Ainda assim, no link que vc mandou aparece **. Como seria isso, essa sintaxe?

altura * altura
Math.pow(altura, 2)

Eduardo, para elevar ao quadrado é 2 * 2 ou Math.pow(2, 2).

Obrigado!!