一尘不染

Java生成范围内的随机双精度

java

我有两个如下的双打

double min = 100;
double max = 101;

使用随机生成器,我需要在min和max范围之间创建一个双精度值。

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

但是这里没有什么可以指定范围的。


阅读 767

收藏
2020-03-15

共2个答案

一尘不染

在Java 7发行之前曾问过这个问题,但是现在,还有另一种使用Java 7(及更高版本)API的可能方式:

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

nextDouble将返回介于最小值(包含)和最大值(不含)之间的伪随机双精度值。范围不一定是int,可以是double

2020-03-15
一尘不染

要在rangeMin和之间生成一个随机值rangeMax

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