1
resposta

[Dúvida] Retorno do numero aleatorio inteiro e não quebrado

Estou na formação Logica de Programação na aula (07. Criando a função para o botão sortear), e em determinado momento da aula foi pedido para que aparecesse no alert o numero sorteado porem inteiro e não quebrado do jeito que estava aparecendo. Dito isso, eles solucionaram o problema com um codigo pego no site da Mozilla e eu solucionei com base no que vi nas primeiras aulas e gostaria de saber se o meu também está certo já que deu o que foi pedido ou se está errado e precisa mudar alguma coisa.

return Math.floor(Math.random() * (max - min + 1)) + min; ------> codigo que os professores usaram do Mozilla.

return parseInt(Math.random() * (max - min) + min); -------> codigo que eu sei com base no que eu ja aprendi.

1 resposta

Olá João Victor boa noite!

Exitem algumas diferenças importantes nas funções Math.floor e parseInt.

Math.floor(): A função Math.floor(x) retorna o maior número inteiro menor ou igual a x. Ela é usada para arredondar para baixo um número de ponto flutuante. Exemplo:

const numero = 45.95;
const arredondado = Math.floor(numero); // Resultado: 45

parseInt(): A função parseInt() converte uma string em um número inteiro. Ela remove caracteres não numéricos da string e retorna o valor inteiro. Exemplo:

const texto = '12foo';
const numeroInteiro = parseInt(texto); // Resultado: 12

Cuidado: O parseInt() pode converter strings com vírgulas em números inteiros, mas não arredonda números de ponto flutuante.

Em resumo: Use Math.floor() para arredondar para baixo números de ponto flutuante. Use parseInt() para converter strings em números inteiros, mas lembre-se de que ele não arredonda números de ponto flutuante.

Usando o Math.floor no seu exemplo você garante que vai retornar um número inteiro.