You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中生成(min, max]区间的随机double类型数值?

生成 (min, max] 区间的随机double值

要生成**(min, max]**区间的随机double类型数值,你可以基于原有的公式做简单变换:

原代码生成的是[min, max),核心是Math.random()返回[0, 1)区间的数值。如果我们把这个随机值反转,就能得到(0, 1]区间的结果,再映射到目标区间即可。

直接可用的代码:

double num = max - Math.random() * (max - min);

或者等价的写法:

double num = min + (max - min) * (1 - Math.random());

原理说明

  • Math.random() 返回 [0, 1),因此 Math.random() * (max - min) 的范围是 [0, max - min)
  • 用 max 减去这个值,得到的范围就是 (max - (max - min), max],也就是 (min, max]

对于浮点数来说,Math.random() 返回恰好0的概率极低,几乎可以忽略,所以这个实现完全符合你对开区间起点、闭区间终点的需求。

内容的提问来源于stack exchange,提问作者swamp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 04:09:20