查看Math类的源码可以看到random()返回的时double类型其范围是0.0-1.0

基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324 (2的-1074次方)
最大值:Double.MAX_VALUE=1.7976931348623157E308 (2的1024次方-1)

如果直接乘20的话,这范围是0-20System.out.println(Math.random()*20);

1
2
3
4
5
17.268006435383807
18.24874738356354
......省略
16.45526809830594
16.686627014227962

转换int整型System.out.println((int)(Math.random()*20));

1
2
3
4
5
6
5
14
11
....省略
18
14

获取两个数之间的随机数

关键代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package Test;

public class Test {
public static void main(String[] args) {
// 设置 最大值 / 最小值
int max=100,min=50;
// 最大值减最小值
int result=max-min;
// 循环输出50个随机结果
for (int i = 0; i < 50; i++) {
// 获取到随机数
int num = (int) (Math.random()*result);
// 随机数+最小数
int randomResult = num+min;
System.out.print(randomResult+" ");
}
}
}

结果

1
2
3
4
5
6
7
8
70
70
97
.....省略
74
79
90
82