在一个范围内生成一个随机的双精度值

2022-08-31 07:10:23

我有两个双打,如下所示

double min = 100;
double max = 101;

使用随机生成器,我需要在最小值和最大值之间创建一个双精度值。

Random r = new Random();
r.nextDouble();

但是这里没有我们可以指定范围的内容。


答案 1

要在 和 之间生成随机值,rangeMinrangeMax

Random r = new Random();
double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();

答案 2

这个问题在Java 7发布之前就被问到了,但现在,使用Java 7(及以上)API还有另一种可能的方法:

double random = ThreadLocalRandom.current().nextDouble(min, max);

nextDouble 将返回最小值(包括最大值)和最大值(独占值)之间的伪随机双精度值。边界不一定是 ,并且可以是 。intdouble


推荐