Ответ 1
Передача abc в целое число.
(int)(Math.random()*100);
Как вы используете Math.random для генерации случайных ints?
Мой код:
int abc= (Math.random()*100);
System.out.println(abc);
Все, что он распечатывает, равно 0, как я могу это исправить?
Передача abc в целое число.
(int)(Math.random()*100);
Для компиляции кода вам нужно передать результат в int.
int abc = (int) (Math.random() * 100);
Однако, если вы вместо этого используете класс java.util.Random, он построил для вас метод
Random random = new Random();
int abc = random.nextInt(100);
В качестве альтернативы, если нет конкретной причины использовать Math.random()
, используйте Random.nextInt()
:
Random rnd = new Random();
int abc = rnd.nextInt(100); // +1 if you want 1-100, otherwise will be 0-99.
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... и т.д.)
Вы также можете использовать этот способ для получения случайного числа от 1 до 100 как:
SecureRandom src=new SecureRandom();
int random=1 + src.nextInt(100);
double i = 2+Math.random()*100;
int j = (int)i;
System.out.print(j);