Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
10
respostas

var IDADE2 = "20"; o resultado é 34004

meta charset="UTF-8">

porque o resultado é 34004 ?

podem me explicar o racional ?

10 respostas

Ei Sergio, se puder depois cola o codigo aqui pra gente analisar e ver o que tá acontecendo!

João segue:

Boa tarde Sergio.

Seu código não está aparecendo.

Sergio, pro seu código aparecer precisa usar o botão </> e colar o seu codigo entre as aspas. Esse botão

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAi você colocar dentro dessas aspas que vão aparecer Insira aqui a descrição dessa imagem para ajudar na acessibilidade

<meta charset="UTF-8">
<script>
    var IDADE1 = 10;
    var IDADE2 = "20";
    var IDADE3 = 12;

    document.write("A média das idades é <br>");
    document.write( (IDADE1 + IDADE2 + IDADE3) / 3);
</script>

Agora deu certo! O problema ai Sérgio é que a var = IDADE2 está recebendo "20", e quando um número está entre aspas ele vai ser lido como um texto e não como um número. Ai ao invés de somar ele apenas faz a concatenação, que é a junção dos termos.

<meta charset="UTF-8">
<script>
    var IDADE1 = 10;
    var IDADE2 = "20";
    var IDADE3 = 12;

    document.write("A média das idades é <br>");

        // Aqui é como se o programa fizesse 102012 e dividisse por 3
    document.write( (IDADE1 + IDADE2 + IDADE3) / 3);
</script>

Pra corrigir é só tirar as aspas do 20 na var IDADE2, que o programa vai ler como número e realizar a operação corretamente. No mais o código está certinho! Parabéns e bons estudos! Qualquer coisa estamos ai!

Olá Sérgio, tudo bem?

Com uma das idades é uma string a soma das idades dentro dos parênteses vai concatenar os valores e não somar.

(IDADE1 + IDADE2 + IDADE3) -> resultado "102012"

Isso porque o sinal de + serve tanto para somar como para concatenar.

Depois, na divisão, o programa entende por debaixo dos panos que "102012" / 3 só pode resultar em um número, já que não há operação com esse operador de divisão em strings. Daí o resultado 34004 , que é justamente a divisão acima.

Bons estudos!

João Pedro Escamilha De Azevedo, obrigado pela resposta.

Eu na verdade quero entender que numero ele está atribuindo a esta variavel IDADE2 para gerar este numero doido. Que as aspas do 20 estão causando esta doideira eu sei. Mas mesmo assim muito obrigado !!!

solução!

Então Sergio.

Como as " " estão transformando variavel IDADE2 em um string, assim elas são concatenadas, gerando o valor total de "102012" onde será divida por 3 gerando o valor 34004.

Esse valor "102012" são os valores que foi atribuidos nas variaves IDADE1, IDADE2 e IDADE3.

Agora compreendi !!!! obrigado