Как вы используете math.random для генерации случайных ints?

Как вы используете Math.random для генерации случайных ints?

Мой код:

int abc= (Math.random()*100);
System.out.println(abc);

Все, что он распечатывает, равно 0, как я могу это исправить?

Ответ 1

Передача abc в целое число.

(int)(Math.random()*100);

Ответ 2

Для компиляции кода вам нужно передать результат в int.

int abc = (int) (Math.random() * 100);

Однако, если вы вместо этого используете класс java.util.Random, он построил для вас метод

Random random = new Random();
int abc = random.nextInt(100);

Ответ 3

В качестве альтернативы, если нет конкретной причины использовать Math.random(), используйте Random.nextInt():

Random rnd = new Random();
int abc = rnd.nextInt(100); // +1 if you want 1-100, otherwise will be 0-99.

Ответ 4

int abc= (Math.random()*100);//  wrong 

вы получите сообщение об ошибке

Исключение в потоке "main" java.lang.Error: неразрешенная компиляция проблема: несоответствие типов: невозможно преобразовать из double в int

int abc= (int) (Math.random()*100);// add "(int)" data type

известный как литье типов

если истинный результат

int abc= (int) (Math.random()*1)=0.027475

Затем вы получите вывод как "0", потому что это целочисленный тип данных.

int abc= (int) (Math.random()*100)=0.02745

вывод: 2, потому что (100 * 0.02745 = 2,7456... и т.д.)

Ответ 5

Вы также можете использовать этот способ для получения случайного числа от 1 до 100 как:

SecureRandom src=new SecureRandom();
int random=1 + src.nextInt(100);

Ответ 6

double  i = 2+Math.random()*100;
int j = (int)i;
System.out.print(j);