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

Diferença de idade com número negativo.

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    function mostra(frase) {

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

    var idadeMinha = 31
    var idadeAmiga = 38

    mostra("Nossa diferença de idade é de " + (idadeMinha - idadeAmiga) + " ano(s).")

</script>

Pergunta: Como imprimir uma resposta com um número positivo?

5 respostas
solução!

Você pode usar a função

Math.abs( numeroqualquer );

Ai ficaria assim

var idadeMinha = 31
var idadeAmiga = 38
var diferenca = Math.abs( idadeMinha - idadeAmiga )

mostra("Nossa diferença de idade é de " + diferenca + " ano(s).")

Isso aconteceu porque o JavaScript entende que a variável "idadeAmiga" é um número negativo, e sendo ela maior que o "idadeMinha", que é um número positivo. O que acontece é que o "idadeMinha" (31) e o "idadeAmiga" (que no cálculo você a declarou como -38) são subtraídas e o sinal do maior número é conservado.

Você pode simplesmente alterar as variáveis de posição, deixando "idadeAmiga" na frente no cálculo.

mostra("Nossa diferença de idade é de " + (idadeAmiga - idadeMinha) + " ano(s).")

Mas isso não seria o ideal a se fazer. Você poderia utilizar sugestão do colega Tarcísio e utilizar o Math.abs, que retorna o número absoluto.

Jaqueline, para resolver seu problema tem vários jeitos, o mais simples seria:

mostra("Nossa diferença de idade é de " + (Math.abs(idadeMinha - idadeAmiga)) + " ano(s).")

Assim como nosso amigo Tarcísio disse, utilizando a função abs, ela retorna o número absoluto de um determinado numero passado.

Espero ter ajudado

Se no futuro quiser colocar idade 'quebrada' pode arredondar:

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    function mostra(frase) {

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

    var idadeMinha = 31.1
    var idadeAmiga = 38.9
    var diferenca = Math.round(Math.abs( idadeMinha - idadeAmiga ));

    mostra("Nossa diferença de idade é de " + diferenca + " ano(s).")

</script>

Obrigada a todos pela ajuda. Utilizei Math.abs e solucionou o problema.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software