范围内的随机(双值)数字生成器

时间:2012-04-24 02:11:53

标签: java random double

Java api有一个关于如何生成0(包括)和n(不包括)之间的整数的方法,但是没有一种方法来生成随机数的double值,给定一定的范围,比如2.0到3.0。怎么办呢?


 double x = 0.7 + Double.valueOf(Math.random()*(9.0-0.7)).intValue(); 

结果只有少数类型.7

3 个答案:

答案 0 :(得分:2)

你非常接近,但intValue()调用是不必要的,Double.valueOf( String )调用甚至不应该编译。

public double random( double min, double max )
{
  double diff = max - min;
  return min + Math.random( ) * diff;
}

答案 1 :(得分:1)

标记的答案排除最大值(nextDouble的最大值为0.9)。作为附注,我想提出我的答案,包括最大值。

public double randomDouble(double min, double max) {
    double divider = 1.1111111111111111111111111111111; 
    double num = min + (random.nextDouble() * ((max - min) * divider)); 
    return num2; 
}

答案 2 :(得分:0)

您是否尝试过Random类? http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Random.html 有浮动方法,双重...