Java生成随机 double

标签 java random double

如何在 Java 中生成随机 double ?

所有教程仅展示如何在一定范围内生成,但我希望所有 double 都可能。

是否有什么东西可以将所有位打乱并给我数字?

最佳答案

您可以做的是生成一个随机 64 位值。 这可以给你非数字和+/-无穷大。

Random rand = new Random();

double d = Double.longBitsToDouble(rand.nextLong());

注意:随机仅产生 2^48 个可能的 long 值。您可以使用 SecureRandom 生成所有可能的 64 位值,但这要慢得多。

就实数而言,您的兰特是 [-Double.MAX_VALUE, Double.MAX_VALUE] 对于所有可能的表示形式,分布是均匀的。

你有大约 1/4096 的机会得到 NaN。您可以循环此操作以丢弃任何不需要的值。

关于Java生成随机 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30061702/

相关文章:

c - C函数中是否可以有变量输入

java - 如何从 HTTP 响应中获取 mongodb objectId

mysql - SELECT RAND AS 字段同时选择字段修改的其他值

java - 将 Double 对象转换为 int

c# - 随机字符生成错误 C#

c++ - C++ 中 RNG 的正确拷贝

c++ - 在 C++ 中使用 float,double 打印小数

javascript - 将日期从 JavaScript 转换为 Java

java-捕获异常时更新表状态

java - Hibernate 中空引用的查询处理