Как производить десятичные случайные числа в Java внутри ранга?

Я стараюсь производить случайные числа в Java внутри ранга, определенного со следующим кодом:

int randomNum = rand.nextInt((max - min) + 1) + min;

Но это только производит мне числа в наборе целых чисел. Как я могу получать числа, которые также были бы десятичными?

4
задан 04.03.2016, 08:32
6 ответов

rand deberГ, - когда у одного есть mГ©todo nextDouble. Восток mГ©todo не принимает аргументы, так как он производит один nГєmero между 0.0 и 1.0, Чтобы налаживать этот nГєmero в твой ранг, ты можешь использовать один cГіdigo сходно с этим:

double randomNum = min + ( max - min ) * rand.nextDouble();
12
ответ дан 01.12.2019, 08:14

Востока один mГ©todo Гєtil, очень важно использование nextDouble()

public static double getRandom(Double valorMinimo, Double valorMaximo) {
        Random rand = new Random();
        return  valorMinimo + ( valorMaximo - valorMinimo ) * rand.nextDouble();
    }

nextDouble () mГ©todo очень, что использован, чтобы получать следующего псевдослучайного, стоимость, распространенную однообразно между 0.0 и 1.0 из последовательности этого nГєmero случайного генератора. Такие

Как пример:

Используя mГ©todo ранее описано, пишет 100 случайных чисел между стоимостью 1.1 и 2.5:

System.out.println(String.valueOf(getRandom(1.1, 2.5)));

видеть demo aquГ-!

5
ответ дан 01.12.2019, 08:14
  • 1
    Если ты будешь использовать объект класса Random, не быть и # 237; в м и # 225; s, что это в и # 241; adieras как пара и # 225; метр. Если не, лучше он использует Math.random(). Также это не плохая идея использовать double и не Double, чтобы предотвращать превращения дополнительно объекта в примитивно и наоборот. – Darkhogg 17.12.2015, 18:43

Ты можешь использовать этот код, только будь осторожен, что этот код никогда не даст тебе стоимость max:

function randomInRange(min, max) {
  return Math.random() * (max-min) + min;
}

Используй класс Math, хотя ты конечно также мог бы использовать функцию nextDouble класса Random.

1
ответ дан 01.12.2019, 08:14

Ты можешь производить random, в котором минимальной стоимости было бы (min + 100), и потом разделять число, полученное 100.0. Таким образом, что obtendrГ-схвати один nГєmero с двумя десятичными:

double randomNum = rand.nextInt((max - min) + 1) + min + 100 / 100.0
2
ответ дан 01.12.2019, 08:14

PodrГ-схвати использовать это

(Math.random()*20)+1;

то, что crearГ - в случайного между 1 и 19 с десятичными.

19 = 20 - 1 // Max - Min
1
ответ дан 01.12.2019, 08:14
  • 1
    Оно не функционирует, я сделал доказательство (Math.random()*10)+5 = 14.98... Произведи n и # 250; морские окуни на м и # 225; ximo. – HCarrasko 17.12.2015, 14:15
  • 2
    *10 + 5, был бы должен производить n и # 250; морские окуни между 5 и 15, 14.98 эта в ранге – Joel Ibaceta 17.12.2015, 14:20
Random r = new Random();

double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();
0
ответ дан 01.12.2019, 08:14
  • 1
    Помещать исключительно c и # 243; я говорю, что он не позволяет, что dem и # 225; s оцените твой soluci и # 243; n. и #191; Podr и # 237; схвати объяснять немного м и # 225; s qu и # 233; вот то, что делается и из-за qu и # 233; твой подход приемлемый? Спасибо. – Ruslan López 18.12.2015, 02:29