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

Porque Math.round(Math.random() * 100) funciona corretamente e Math.random(Math.round() * 100)?

<meta charset="UTF-8">

<script>
    function quebraLinha()
    {
        document.write("<br>");
    }
    function mostre(texto)
    {
        document.write(texto);
        quebraLinha()
    }
    var numberOne = Math.round(Math.random() * 100);
    var numberTwo = Math.random(Math.round() * 100);
    mostre("Número um: " + numberOne);
    mostre("Número dois: " + numberTwo);
</script>
2 respostas
solução!

Olá, Marcos!!! Tudo bem contigo? Espero que sim!!!

Quando nós executamos

var numberOne = Math.round(Math.random() * 100);

estamos dizendo para sortearmos um número até 100, porém esse número pode ter muitas casas decimais e a função do Math.round é justamente arredondar esses números para que não fiquem quebrados (também seria quase impossível acertar em um possível jogo rsrs).

Já na segunda situação

var numberTwo = Math.random(Math.round() * 100);

nós vemos que em um primeiro momento o sistema diz "aqui eu não posso fazer nada porque o número 100 já é um número inteiro". Ele só está enxergando o vezes 100, e ainda te diz "eu não consigo multiplicar por nada".

Agora, quando saímos dos parênteses, o número 100 vai encontrar o Math.random e é aqui que será realizado o sorteio até 100. Consegue perceber que depois de feito o random ele não consegue arredondar porque essa função já foi realizada dentro dos parenteses?

Por isso que na segunda opção não acontece como a primeira!

Espero ter ajudado, Marcos!!!

Bons estudos e vamos em frente!!!

Obrigado pela resposta Cássio. Foi extremamente claro e objetivo, agradecido!