Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获得指定范围内的随机双精度?_Java_Random_Double_Range - Fatal编程技术网

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();