Java 如何获得指定范围内的随机双精度?
我真的认为这会起作用,但当我运行它时,我总是得到一些随机的大小数,这毫无意义。逻辑是正确的,那么为什么代码不能工作呢Java 如何获得指定范围内的随机双精度?,java,random,double,range,Java,Random,Double,Range,我真的认为这会起作用,但当我运行它时,我总是得到一些随机的大小数,这毫无意义。逻辑是正确的,那么为什么代码不能工作呢 do{ value = rnd.nextDouble(); }while(value>min && value<max); do{ value=rnd.nextDouble(); }while(value>min&&value您可以声明start和end变量(int或double),并使用nextDouble()类似于: value = rnd.
do{
value = rnd.nextDouble();
}while(value>min && value<max);
do{
value=rnd.nextDouble();
}while(value>min&&value您可以声明start
和end
变量(int
或double
),并使用nextDouble()
类似于:
value = rnd.nextDouble() * (end - start) + start;
记住:
public double nextDouble()
返回此随机数生成器序列中0.0和1.0之间的下一个伪随机、均匀分布的双精度值
返回一个介于0.0
和1.0
之间的随机double
值。您可以通过添加min
值来转换范围,并通过将其乘以max
和min
之间的差值来放大范围
value = (rnd.nextDouble() * (max - min)) + min;
要在rangeMin
和rangeMax
之间生成一个随机值:
Random r = new Random();
double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();