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

[Dúvida] concatenação com números com decimais.

Olá, tentando praticar médias no exercício proposto ao colocar números com vírgulas o programa me da a resposta de 1,6666666667. Ao retirar as vírgulas, ele calcula a resposta correta.

Alguém sabe me dizer o por quê?

segue o código utilizado:

<meta charset="UTF-8">

<script>

alert("ATENÇÃO: MÉDIA DAS NOTAS")

document.write("A média das notas é ");

document.write((8,5 + 7,5 + 9,5) / 3 + ".");

</script>
2 respostas
solução!

Olá Luca, tudo bem?

Isso ocorre por conta da divisão entre esses números nos devolver um número irracional (que basicamente vai repetir as casas decimais infinitamente), uma forma de contornar esse problema seria a utilização da função toFixed(), Usamos ela apartir de algum número, onde podemos passar entre parênteses quantas casas decimais queremos, como por exemplo:

1.734059.toFixed(2) // Isso vai nos retornar 1.73

Então, aplicando essa técnica no seu código ficaria mais ou menos assim:

<meta charset="UTF-8">

<script>

    alert("ATENÇÃO: MÉDIA DAS NOTAS")

    document.write("A média das notas é ");

    document.write(((8, 5 + 7, 5 + 9, 5) / 3).toFixed(1) + "."); // vai ficar 1.7 no resultado

</script>

Qualquer dúvida, estarei à disposição :)

Forte abraço e bons estudos !!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Olá Matheus, tudo joia e com você?

Desde já, agradeço por me responder.

Compreendo parte da sua sua explicação, porém a solução que encontrei foi: utilizar ponto ao invés da vírgula.

Temos esta prática no Brasil para números decimais, mas onde o JavaScript foi criado, nos Estados Unidos eles utilizam o ponto.

Desta forma o correto no notepad seria (8.5 + 7.5 + 9.5) / 3 resultando no programa em uma média 8.5. Porém a sua resposta, me trouxe mais duvidas. Como o programa lê ao utilizar as virgulas? Por que o resultado é um numero tão pequeno como 1.7...?

Segue o código corrigido:

<meta charset="UTF-8">

<script>

alert("ATENÇÃO: MÉDIA DAS NOTAS")

document.write("A média das notas é ");

document.write((8.5 + 7.5 + 9.5) / 3 + ".");

</script>