java - 是否可以在没有任何预定义边界的情况下在 Java 中生成随机双精度数?
问题描述
我阅读了有关Math.random()和Random的内容,并阅读了几乎所有关于在堆栈溢出时生成随机数的帖子。
我仍然无法弄清楚如何在没有每个定义的边界的情况下生成随机数。
我的意思是,我知道可以写
Random random = new Random();
int mynumber = random.nextInt(max-min) + min;
但是如果我不想提供这些max
和min
怎么办?如果我希望它也被生成怎么办?
底线,我的目的是生成一个随机数,它也可以在 和 的范围内为INT_MAX
负数INT_MIN
。
我尝试了几种方法:
int max = (int)Math.random();
int min = (int)Math.random();
double myNumber = new Random().nextInt(max - min) + min;
不起作用,因为(int)Math.random()
总是四舍五入为 0。
我也试过:
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
double myNumber = new Random().nextInt(max - min) + min;
我明白了The call to 'nextInt' always fails as index is out of bounds
。
我的目的是生成一个随机数double
,但Random ().nextInt(x,y)
只获得int as x and y
。并在不提供预定义值的情况下做到这一点max and min
。
你建议我怎么做?在程序的每次运行时生成一个随机且不同的双精度数?
解决方案
Double.longBitsToDouble(new Random().nextLong())
推荐阅读
- javascript - 如何使用正则表达式在 JavaScript 中验证用户的出生日期?
- arrays - 如何在 swift 5.0 的数组中找到最小的非零 INT?
- .net-core - 任务计划程序创建任务 DotNet 不起作用
- python - 是否可以在海龟对象中使用索引?
- javascript - 利用本地存储存储购物车详细信息的更好方法
- javascript - 正确使用未定义
- python - 如何抓取 youtube 视频以获取比一页更多的视频?
- sql - 检查是否在多值参数中选择了逗号分隔列表中的任何值(在 SQL 数据集中)
- r - 将字符串的前两个字符移到字符串中的特定字符之后
- java - 如何在 CQL 中使用 JAVA 创建表并插入 json 数据?