Número aleatório Java

ThatsMe

Portugal@Home Member
Boas.

Preciso de fazer um número aleatório em java. Ora, esse número tem que ser inteiro e convém que tenha uns 8 dígitos.

Andei a Googlar mas os exemplos que vi eram demasiadamente elaborados (penso eu) para o que preciso.

Ajuda pf? :)

Cumps.
 
Se necessitas de ter exactamente o número de dígitos que indicaste, então o método standard é utilizares algo do género:

Código:
10000000 + (int)(Math.random() * ((99999999 - 10000000) + 1));
// ou
new Random().nextInt(99999999 - 10000000 + 1) + 10000000;
// ou, de uma forma genérica:
new Random().nextInt(max - min + 1) + min;
// max = 99999999
 
Última edição:
(int)Math.random()*99999999

E posso fazer int var=(int)Math.ramdon()*99999999; ?

Se necessitas de ter exactamente o número de dígitos que indicaste, então o método standard é utilizares algo do género:

Código:
10000000 + (int)(Math.random() * ((99999999 - 10000000) + 1));
// ou
new Random().nextInt(99999999 - 10000000 + 1) + 10000000;
// ou, de uma forma genérica:
new Random().nextInt(max - min + 1) + min;
// max = 99999999

Não preciso de ter exactamente o número de digitos que disse, por isso penso que seja melhor optar pela 1ª forma, é mais simples :) Obrigado na mesma.
 
Sim, podes fazer essa atribuição. No entanto, esse código tem um problema uma vez que não te permite obter o número 99999999 (devido ao limite superior do método random ser exclusivo). Para corrigires, precisas de utilizar o seguinte:

Código:
int i = (int)(Math.random() * (99999999 + 1));
 
Sim, podes fazer essa atribuição. No entanto, esse código tem um problema uma vez que não te permite obter o número 99999999 (devido ao limite superior do método random ser exclusivo). Para corrigires, precisas de utilizar o seguinte:

Código:
int i = (int)(Math.random() * (99999999 + 1));

Problema resolvido :) Obrigado.
 
Back
Topo