2011-05-20 145 views
15
float minX = 50.0f; 
float maxX = 100.0f; 

Random rand = new Random(); 

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

“在类型随机的方法nextFloat()是不适用的参数(浮动)”Random.nextFloat不适用于浮动?

嗯,什么?

回答

74

nextFloat方法不带参数。调用它,然后缩放所需范围内的返回值。

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

Random rand = new Random(); 

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

噢,我认为它可以像nextInt() – herpderp 2011-05-20 22:28:04

+1

@herpderp一样工作:不,它只是返回一个介于0.0和1.0之间的值,您可以将其用作方便的缩放因子。 – 2011-05-20 22:30:41

+0

到下一个浮动文档的链接已损坏。也许这一个https://docs.oracle.com/javase/7/docs/api/java/util/Random.html#nextFloat() – 2016-02-19 14:31:37

0

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

编辑:例如

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

为他人所提出的建议读起来像下面。

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