Random.nextFloat不适用于花车?

时间:2011-05-20 22:23:27

标签: java random

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

Random rand = new Random();

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

“Random类型中的方法nextFloat()不适用于参数(float)”

嗯,什么?

4 个答案:

答案 0 :(得分:78)

nextFloat方法不参数。调用它,然后在你想要的范围内缩放返回的值。

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

Random rand = new Random();

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

答案 1 :(得分:4)

Random只返回0到1.0之间的浮点数(没有像整数一样的重载版本):请参阅此处的Javadoc:http://download.oracle.com/javase/6/docs/api/java/util/Random.html#nextFloat()

我认为你可以做你想要的事情:

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

答案 2 :(得分:0)

文档非常清楚,nextFloat()不带任何参数。它会给你一个0到1之间的数字,你需要在计算中使用它。

编辑:示例

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

答案 3 :(得分:0)

如其他人所暗示的那样,应如下所示。

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