2011-05-20 14 views

Respuesta

74

El método nextFloat no toma un argumento. Llámalo, luego escala el valor devuelto sobre el rango que deseas.

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

Random rand = new Random(); 

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

Oh, supuse que funcionaría como nextInt() – herpderp

+1

@herpderp: No, simplemente devuelve un valor entre 0.0 y 1.0 que puede usar como un factor de escalado práctico. –

+0

el enlace a la documentación de nextFloat está roto. tal vez este https://docs.oracle.com/javase/7/docs/api/java/util/Random.html#nextFloat() –

0

La documentación es muy clara, nextFloat() no toma ningún argumento. Le dará un número entre 0 y 1, y tendrá que usar eso en su cálculo.

edición: ejemplo

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

Debe leer el siguiente aspecto como otros están sugiriendo.

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