Я обнаружил, что Random#nextFloat возвращает значение между 0.0
и 1.0
.Как я могу получить значения случайных чисел с плавающей запятой?
Как получить случайное значение поплавка, например -72.0F
или 126.232F
?
Я сейчас занимаюсь этим.
float randomFloat() {
final ThreadLocalRandom random = ThreadLocalRandom.current();
float value = random.nextFloat() * Float.MAX_VALUE;
if (random.nextBoolean()) {
value = 0 - value;
}
return value;
}
Это право? Есть ли другой способ сделать это?
Я думаю, вы могли бы вызвать 'random.nextInt()', а затем использовать 'Float.intBitsToFloat()'. Однако это может быть не так случайным, как вам хотелось бы, и вам, возможно, придется иметь дело с ошибками формата в битовых шаблонах. – markspace