2015-11-06 2 views
0

Как я могу установить эти значения с помощью случайного числа до случайного десятичного числа от 0 до 100?Как использовать библиотеку Random?

xPos = Math.round((Math.random() * 100) * 10)/10; 
yPos = Math.round((Math.random() * 100) * 10)/10; 

я пытаюсь установить значения XPOS и YPos в случайных знаков после запятой в диапазоне от 0 до 100

+0

Проверить [Java Генерировать случайное число между двумя заданными значениями] (http://stackoverflow.com/questions/5271598/java-generate-random -number-between-two-given-values) – sam

+3

В чем проблема? Почему бы просто не вставить экземпляр «Random» и использовать ['nextInt (int bound)'] (https://docs.oracle.com/javase/8/docs/api/java/util/Random.html#nextInt -int-) метод? – mkobit

+0

http://stackoverflow.com/questions/7961788/math-random-explained – jwde

ответ

2

Попробуйте это:

Random rand = new Random(); 
double xPos = rand.nextDouble() * 100; 
double yPos = rand.nextDouble() * 100; 

nextDouble docs

-1

Чтобы сгенерировать случайное десятичное из [ 0-100) вы можете использовать Math.random(), как вы уже, или можете использовать объект Random

ли записка [0-100), эти биты кода возврата чисел от 0 до, но не включая, 100


Math.random():

double xPos = Math.random() * 100; 
double yPos = Math.random() * 100; 

Math.random() с 1 десятичного знака:

double xPos = Math.floor(Math.random() * 1000)/10; 
double yPos = Math.floor(Math.random() * 1000)/10; 

Случайный объект:

Random r = new Random(); 
double xPos = r.nextDouble() * 100; 
double yPos = r.nextDouble() * 100; 

Случайный объект с 1 десятичного знака:

Random r = new Random(); 
double xPos = r.nextInt(1000)/10.0; 
double yPos = r.nextInt(1000)/10.0; 

Считается лучшей практикой использовать Random объект, даже если Math.random() называет его собственный внутренний Random объект.

Использование Random вместо Math.random() имеет преимущество упрощения параллелизма. Без нескольких объектов Random многопоточность с большим использованием рандомизированных чисел будет замедляться до обхода

+0

как вы также обходите случайный()? –

+0

@kaanmote Что вам нужно, чтобы округлить? Я включил ответы на десятичные знаки, которые можно масштабировать до двух или более. Вам нужно округлить до ближайшей половины? ближайший int? – phflack

+0

Никаких объяснений нисходящего? Никто не помогает другим улучшить, не сказав, как – phflack

Смежные вопросы