No problema no qual estou resolvendo preciso criar um número randômico no intervalo de -20 até 20. Já usei o -20+(int)(20*Math.random()) mas não deu certo, este só produz randômicos negativos.
int numero=(int) Math.random()%21; //aqui teríamos qualquer valor entre 0 e 20
int sinal = (int) Math.random()%2; //aqui teríamos os valores 0 ou 1
if (sinal==1){// para números negativos
numero=-numero;
}
A
andre.almeida
Acho que o seguinte funcionaria melhor:
Random r = new Random();
int numero = r.nextInt(41) - 20;
[]'s
r_Jovelli
Ei cara vc está multiplicando por 20. Se vc quer um número que tenha o valor máximo de 20 deve multiplicar por 21… Math.Random() retorna um double randômico entre 0,001 e 0,999 ou seja a multiplicação é que define o escopo do número randômico retornado…
Ao multiplicar por 20 vc vai conseguir um número entre 0,001 e 19,98 e depois ao transformar em int vc terá entre 0 e 19. Sacou…
Eu faria conforme abaixo, com só uma linha dá pra resolver:
intnum=(int)((41*Math.Random())-20);
flw
Rodrigo_Mattos
Amigos tentei todas as dicas que me foram dadas aqui. Nenhuma funcionou
Preciso simplesmente criar um randomico no intervalo de -20 até 20. Sou iniciante, mas parece tão simples não sei porque não está dando certo.