Random.nextFloat не применим для поплавков?

float minX = 50.0f;
float maxX = 100.0f;

Random rand = new Random();

float finalX = rand.nextFloat(maxX - minX + 1.0f) + minX;

"Метод nextFloat() в типе Random не применим для аргументов (float)"

Um, что?

Ответы

Ответ 1

Метод nextFloat не принимает аргумента. Вызовите его, затем масштабируйте возвращаемое значение в нужном диапазоне.

float minX = 50.0f;
float maxX = 100.0f;

Random rand = new Random();

float finalX = rand.nextFloat() * (maxX - minX) + minX;

Ответ 2

Случайные возвраты только от 0 до 1.0 (без перегруженной версии, например, для целых чисел): См. Javadocs здесь: http://download.oracle.com/javase/6/docs/api/java/util/Random.html#nextFloat()

Я думаю, вы можете делать то, что вы намереваетесь:

float finalX = (maxX - minX) * rand.nextFloat() + minX;

Ответ 3

Документация очень понятна, nextFloat() не принимает никаких аргументов. Это даст вам число от 0 до 1, и вам нужно будет использовать это в своих расчетах.

изменить: пример

private Random random = new Random();
public float nextFloat(float min, float max)
{
    return min + random.nextFloat() * (max - min)
}

Ответ 4

Он должен выглядеть следующим образом, как предлагают другие.

float finalX = rand.nextFloat();
// do other stuff