Random取0到1之间(包括0和1)的double?

解决方案 »

  1.   

    public static void main(String[] args) {

    final int CHANGERATE = 3;
    double result;

    int i = (int)(Math.random() * CHANGERATE);
    switch(i) {
    case 0:
    case 1: result = Math.random();
    break;
    case 2: result = 1.0;
    break;
    default: result = Math.random();
     break;
    }
    System.out.println(result);
    } 通过调整CHANGERATE的值可以调整产生1.0的概率。
    虽然概率分布不是很均匀,但是可以实现你的要求。
      

  2.   

    nextDouble() 这个方法可以实现
      

  3.   

    API
    java.util.Random
    nextDouble()
      

  4.   

    java.util.Random
    nextDouble() 能够产生0包括0到1之间的double值
    java.lang.Math
    Math.random ()能够产生0 包括0 到1之间的double值
      

  5.   

    路过
    如果使用 new Random();的话,jdk1.4的较低小版本号有bug
    后来修正了。