java - numeros - Genera un doble aleatorio en un rango
random java 8 (5)
Esta pregunta se hizo antes del lanzamiento de Java 7, pero ahora, hay otra forma posible de usar Java 7 (y superior) API:
double random = ThreadLocalRandom.current().nextDouble(min, max);
nextDouble
devolverá un valor doble pseudoaleatorio entre el mínimo (incluido) y el máximo (exclusivo). Los límites no son necesariamente int
, y pueden ser double
.
Tengo dos dobles como la siguiente
double min = 100;
double max = 101;
y con un generador aleatorio, necesito crear un valor doble entre el rango de mínimo y máximo.
Random r = new Random();
r.nextDouble();
pero aquí no hay nada donde podamos especificar el rango.
Para generar un valor aleatorio entre rangeMin
y rangeMax
:
Random r = new Random();
double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();
Utilizar esta:
double start = 400;
double end = 402;
double random = new Random().nextDouble();
double result = start + (random * (end - start));
System.out.println(result);
EDITAR:
new Random().nextDouble()
: genera al azar un número entre 0 y 1.
start
: número de inicio, para desplazar el número "hacia la derecha"
end - start
: intervalo. Aleatorio te da del 0% al 100% de este número, porque al azar te da un número de 0 a 1.
EDIT 2: Tks @daniel y @aaa bbb. Mi primera respuesta fue incorrecta.
double var1 = LowerLimit + new Random (). nextDouble () * (UpperLimit - LowerLimit); System.out.println ("/ n / nRandom doble en el rango es:" + var1);
import java.util.Random;
public class MyClass {
public static void main(String args[]) {
Double min = 0.0; // Set To Your Desired Min Value
Double max = 10.0; // Set To Your Desired Max Value
double x = (Math.random()*((max-min)+1))+min; // This Will Create
A Random Number Inbetween Your Min And Max.
double xrounded = Math.round(x * 100.0) / 100.0; // Creates Answer To
The Nearest 100th, You Can Modify This To Change How It Rounds.
System.out.println(xrounded); // This Will Now Print Out The
Rounded, Random Number.
}
}