class RandomFloat {
public static void main(String[] args) {
for(int i =0; i<3; i++) {
for(;;) {
int i30 = (int)(Math.random()*30 *100);
//System.out.println(i30);
double t = i30/100.00;
if(t>20 && t<30) {
System.out.println(t);
break;
}
}
}
}
}
我遍了一段 太复杂了, 有简单些的方法吗?

解决方案 »

  1.   

    Math.random()*10+20结果是20到30之间的数字
      

  2.   

    package random;import java.util.*;public class RandomNum {
        private double data;
        //method 2
        //private Random r;    public RandomNum() {
            data = 0.0;
            //method 2
            //r = new Random(Calendar.getInstance().getTimeInMillis());
        }    public double getRandomNum() {
            //method 1
            data = Math.random();
            //method 2
            //data = r.nextDouble();
            data = 20 * (Math.abs(data) < 0.5 ? 1 - data : data);
            return data;
        }    public static void main(String[] argv) {
            RandomNum randomNum = new RandomNum();
            for (int i = 0; i < 10; i++) {
                System.out.println(randomNum.getRandomNum());
            }
            System.out.println('\n');
        }
    }
      

  3.   

    Math.random()*10+10;一楼这个最简单
      

  4.   

    用Math类的静态方法random
    Math.random()*10+10
      

  5.   

    正解:
    Math.random()*10+10;
    ////////////////////////
    Math.random( ) 说明 产生的伪随机数介于 0 和 1 之间(含 0,不含 1),也就是,返回值可能为0,但总是小于1。
      

  6.   

    Random ran = new Random();
      int i = ran.nextInt(20)
      

  7.   

    看错了一个
     原来是10到20啊
     那就
     Random ran = new Random();
     int i = 10 + ran.nextInt(10);
      

  8.   

    晕 double的 哈哈
     nextDouble