2
respostas

Resultado de n com valor 020 é diferente com o valor 20

Por que se eu informar que o valor da variável n é 020 o resultado é 8, haja vista que para o valor 20 o resultado correto é 10 ?

<meta charset="UTF-8">
<script>


    var n = 020;
    document.write("O resultado da fórmula é : " + n * (10 / 20)  );


</script>
2 respostas

E aí, Danilo!

O JavaScript usa esse zero à esquerda para entender o número não como decimal, mas como octal.

Colocando 20 ele entende como 20 decimal, colocando 020 ele entende como 16 decimal.

Para entender o porquê de um número virar outro, veja a tabela abaixo:

Note que de acordo com a tabela, o número 16 em decimal equivale a 20 octal. Assim, se você informa ao JavaScript 020 ele entende que isso é um octal e faz a conta com 16 decimal.

Portanto evite usar zero à esquerda nos seus cálculos, exceto se quiser um número octal.

Espero ter ajudado, bons estudos!

Olá Danilo, tudo bem?

É Isso mesmo que o Rodrigo falou :)

Sua dúvida foi solucionada?