math.random() 直接返回大于等于0.0且小于1.0的double型随机浮点数,无需额外计算或转换,天然满足0.0 ≤ 结果
Math.random() 直接返回一个大于等于 0.0、小于 1.0 的 double 类型随机浮点数,不需要额外计算或转换。
它本来就是 0 到 1 之间的随机浮点数
调用 Math.random() 的结果天然满足: 0.0 ≤ 结果 这个范围是闭开区间,即包含 0.0,但永远不等于 1.0。
常见误解与注意事项
- 它返回的是 double,不是 float;如需 float,可强制转换:
(float) Math.random()- 它不是线程安全的(内部使用了 java.util.Random 的共享实例),高并发场景建议改用
ThreadLocalRandom.current().nextDouble()- 它不能指定种子,无法复现随机序列;如需可重现的随机数,请用
new Random(seed)想生成其他范围怎么办?
只需简单缩放和平移: 目标范围 [a, b) 的随机数 = a + Math.random() * (b - a)
- 例如:[5.0, 10.0) →
5.0 + Math.random() * 5.0- 例如:[1, 100](整数)→
(int)(1 + Math.random() * 100)(注意:这生成的是 1 到 100 的整数,含 1 和 100)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南












