Comment utilisez-vous Math.random pour générer des ints aléatoires?
Mon code est:
int abc= (Math.random()*100);
System.out.println(abc);
Tout ce qu'il imprime est 0, comment puis-je résoudre ce problème?
Convertit abc en un entier.
(int)(Math.random()*100);
Pour que votre code soit compilé, vous devez convertir le résultat en int.
int abc = (int) (Math.random() * 100);
Cependant, si vous utilisez plutôt la méthode Java.util.Random class, elle a une méthode intégrée pour vous.
Random random = new Random();
int abc = random.nextInt(100);
Sinon, s'il n'y a pas de raison particulière d'utiliser Math.random()
, utilisez Random.nextInt()
:
Random rnd = new Random();
int abc = rnd.nextInt(100); // +1 if you want 1-100, otherwise will be 0-99.
vous importez le package Java.util
. C'est pourquoi c'est donner une erreur. il y a aussi un paquet random()
dans Java.util
. Veuillez supprimer le package d'import Java.util
de l'instruction d'importation. alors votre programme utilisera la méthode random()
pour Java.lang
par défaut et ensuite votre programme fonctionnera. rappelez-vous de le jeter i.e
int x = (int)(Math.random()*100);
int abc= (Math.random()*100);// wrong
vous obtiendrez le message d'erreur ci-dessous
Exception dans le fil "principal" Java.lang.Error: compilation non résolue problème: incompatibilité de type: impossible de convertir de double en int
int abc= (int) (Math.random()*100);// add "(int)" data type
, dit moulage de type
si le vrai résultat est
int abc= (int) (Math.random()*1)=0.027475
Vous obtiendrez alors le résultat "0" car il s'agit d'un type de données entier.
int abc= (int) (Math.random()*100)=0.02745
sortie: 2 parce que (100 * 0.02745 = 2.7456 ... etc)
Vous pouvez également utiliser cette méthode pour obtenir un nombre aléatoire compris entre 1 et 100, comme suit:
SecureRandom src=new SecureRandom();
int random=1 + src.nextInt(100);