nessa aula, ela explica a função "return Math.floor(Math.random() * (max - min + 1)) + min;" que faz a mesma funcionamento do "return parseInt(Math.random() * (max - min) + min )" testei no meu e deu certo, poderia usar esse segundo codigo?
nessa aula, ela explica a função "return Math.floor(Math.random() * (max - min + 1)) + min;" que faz a mesma funcionamento do "return parseInt(Math.random() * (max - min) + min )" testei no meu e deu certo, poderia usar esse segundo codigo?
Olá Yago!
Sim, você pode usar o segundo código que você mencionou: return parseInt(Math.random() * (max - min) + min)
. Ambos os códigos têm o objetivo de gerar um número aleatório entre dois valores, min
e max
. No entanto, há uma diferença sutil entre eles:
Math.floor(Math.random() * (max - min + 1)) + min
: Esse código garante que o número gerado seja um número inteiro entre min
e max
, inclusive. Isso é feito ao adicionar 1
ao intervalo (max - min)
e, em seguida, aplicando Math.floor()
para arredondar o resultado para baixo.
parseInt(Math.random() * (max - min) + min)
: Este código também tenta gerar um número inteiro, mas não garante que o número máximo (max
) seja incluído, pois ele não adiciona 1
ao intervalo. Além disso, parseInt()
pode não ser a melhor escolha para arredondar números, já que ele simplesmente converte a parte inteira do número, o que pode levar a resultados inesperados em alguns casos.
Se você deseja garantir que o número máximo seja incluído no intervalo e que o resultado seja sempre um número inteiro, a primeira opção (Math.floor()
) é geralmente mais confiável. No entanto, se o seu teste funcionou bem para o seu caso de uso específico, você pode continuar usando o segundo código. Apenas fique atento a esses detalhes, especialmente se o comportamento do sorteio precisar ser preciso.
Espero ter ajudado e bons estudos!