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