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

parseInt não parece estar convertendo o prompt em número

O resultado esperado era ano, que no prompt coloquei 2003 somado com 2, porém ele está concatenuando e resultando em 20032. O que pode estar errado? (na penúltima linha)

<meta charset="UTF-8">

<h1> Calculador de Idades </h1>
<script>

    function line2(){;

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

    function text(texto){

            document.write("<big>" + texto + "</big>");
            line2();
    }

    function agecalc(year, birth){

            return year-birth
    }

    var year = 2022;
    var birthJhen = 2003; var birthOta = 1998; var birthGab = 2002;
    var media = (year-birthJhen+year-birthOta+year-birthGab)/3;

    text ("Jheniffer nasceu em " + birthJhen + " E possui " + (year-birthJhen) + " anos.");
    text (" Otávio nasceu em "+ birthOta + " E possui " + (year-birthOta) + " anos.");
    text ("Gabriel nasceu em " + birthGab + " E possui " + (year-birthGab) + " anos");
    text ("A média das idades deles é " + media + "<br>");

    media = media+(2040-year);

    text ("Em 2040 essa média será "+ media);

    var name = prompt("Qual o seu nome?");
    var birth = parseInt(prompt("Em qual ano você nasceu?"));
    var age = agecalc(year, birth);

    document.write("<h1>E você? digite sua data de nascimento e descubra sua idade, e quantos anos terá em 2040</h2>");
    document.write ("Olá " + (name) + "! Você possui " + age + " anos.");
    text (" Em 2040 voce vai estar com " + (age + 2040-year) + " anos");
    text ("Você nasceu em "+ birth + 2)
</script>
3 respostas
solução!

Gabriel, faria o seguinte:

text ("Você nasceu em "+ (birth + 2))

Se você adiciona +2 no ano de nascimento da pessoa, o programa vai retornar um ano de nascimento errado (se eu nasci em 2002, ele vai dizer que eu nasci em 2004, não faz sentido, a menos que você queira deixar o usuário com raiva) . Eu não entendi porque você quer fazer isso, mas, do jeito que está, o JS entende que você quer apresentar os valores em sequência, se você quer um cálculo, deve colocar entre ( ), como o Agnaldo já disse acima.

Acho que ficou meio confuso mesmo, Ana. Eu quis somar para experimentar e explorar com o parseInt mesmo, não havia nenhuma razão kkkk Mas sim, eu testei aqui e era só ter colocado entre parênteses. Obrigado :)