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

Reproduzi o codigo alterando para que na entrada aceite a virgula usando parseFloat mas não consegui refletir. Por favor, alguem da uma força?

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    function calculaImc(altura, peso) {

        return peso / (altura * altura);

    }


    var nome = prompt("Informe o seu nome");
    var pesoInformado = prompt("Informe o seu peso");
    var alturaInformada = prompt("Informe a sua altura");
//criei essa duas para tratar a entrada da virgula pesoCalc e alturaCalc
//    var alturaCalc = parseFloat(prompt(nome + ", informe sua altura"));
//    var pesoCalc = parseFloat(prompt(nome + ", informe seu peso"));
    var alturaCalc = parseFloat(alturaInformada);
    var pesoCalc = parseFloat(pesoInformado);

    var imc = calculaimc (pesoCalc, alturaCalc);

    document.write(nome + ", o seu IMC é " + imc);


</script>
7 respostas

Olá Alexandre, tudo bom?

Você consegue colocar no comentário sua vírgula, para ajudarmos?

Abraços e bons estudos!

Opa Cayo, beleza

É que na verdade esse exercício quando vc executa ele se vc não usar o ponto na altura e peso ele dá erro NAN aí eu modifiquei para usar no código aceitando na entrada a vírgula na altura e peso. Mas não consegui atrás do código anexo gerar.

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    function calculaImc(altura, peso) {

        return peso / (altura * altura);

    }


    var nome = prompt("Informe o seu nome");
    var pesoInformado = prompt("Informe o seu peso");
    var alturaInformada = prompt("Informe a sua altura");
//criei essa duas para tratar a entrada da virgula pesoCalc e alturaCalc
//    var alturaCalc = parseFloat(prompt(nome + ", informe sua altura"));
//    var pesoCalc = parseFloat(prompt(nome + ", informe seu peso"));
    var alturaCalc = parseFloat(alturaInformada);
    var pesoCalc = parseFloat(pesoInformado);

    var imc = calculaimc (pesoCalc, alturaCalc);

    document.write(nome + ", o seu IMC é " + imc);


</script>

Oi, Alexandre, tudo bem?

Você pode utilizar o método replace do Javascript que retorna uma nova string a partir de um novo padrão definido. Como queremos trocar . por ,, o replace irá nos ajudar nessa tarefa.

var alturaCalc = parseFloat(alturaInformada.replace('.', ','));

Queremos que alturaInformada substitua o ponto por virgula, então, o colocamos como objeto o ponto, indicando que queremos substituir pelo segundo objeto do método replace, que é a vírgula .replace('.', ','));

E na sua var imc o nome da função deve estar exatamente igual ao da função declarada, dessa forma calculaImc(pesoCalc, alturaCalc);

Agora, o programa conseguirá aceitar números separados por vírgulas no campo de altura.

Sobre o método Replace: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String/replace

Se ficou alguma dúvida é só falar!

Olá Lais Cavalcanti! Tudo bem? Não consegui refletir, o que eu queria seria que ao rodar o codigo no prompt , o usuario conseguisse digitar com virgula na altura e peso.

Se o codigo abaixo:

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    function calculaImc(altura, peso) {

        return peso / (altura * altura);

    }

      var nome = prompt("Informe o seu nome");
    var alturaInformada = prompt(nome + ", informe sua altura");
    var pesoInformado = prompt(nome + ", informe seu peso");

    var imc = calculaImc(alturaInformada, pesoInformado);

    document.write(nome + ", o seu IMC é " + imc);


</script>

Olá Lais Cavalcanti! Tudo bem? Não consegui refletir, o que eu queria seria que ao rodar o codigo no prompt , o usuario conseguisse digitar com virgula na altura e peso.

Se o codigo abaixo:

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    function calculaImc(altura, peso) {

        return peso / (altura * altura);

    }

      var nome = prompt("Informe o seu nome");
    var alturaInformada = prompt(nome + ", informe sua altura");
    var pesoInformado = prompt(nome + ", informe seu peso");

    var imc = calculaImc(alturaInformada, pesoInformado);

    document.write(nome + ", o seu IMC é " + imc);


</script>

Olá Lais Cavalcanti! Tudo bem? Não consegui refletir, o que eu queria seria que ao rodar o codigo no prompt , o usuario conseguisse digitar com virgula na altura e peso.

Se o codigo abaixo:

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    function calculaImc(altura, peso) {

        return peso / (altura * altura);

    }

      var nome = prompt("Informe o seu nome");
    var alturaInformada = prompt(nome + ", informe sua altura");
    var pesoInformado = prompt(nome + ", informe seu peso");

    var imc = calculaImc(alturaInformada, pesoInformado);

    document.write(nome + ", o seu IMC é " + imc);


</script>
solução!

Oi, Alexandre!

Você pode aplicar o método replace dessa forma que sugeri:

    var alturaInformada = prompt("Informe a sua altura").replace(',', '.');
    var pesoInformado = prompt("Informe o seu peso").replace(',', '.');

Assim, o usuário colocando vírgula para separar um valor de decimal não terá erro no resultado do cálculo.