我正在使用 Java 的 Random 生成随机数:1.0、1.1 - 10
Random random = new Random();
return (double) ((random.nextInt(91) + 10) / 10.0);
当我打印大量这些数字 (2000) 时,我注意到 1.0 和 10 的打印数量明显少于其他所有数字(重复 20 次,每次都发生)。很可能是因为未生成 0.95-0.99 和 10.01-10.04。
现在我已经阅读了很多关于这个的主题,但它仍然留给我以下问题:
例如,如果这些数字代表成绩,那么这里不能低于 1 和高于 10,将范围从 0.95 扩大到 10.04 是否合理?
Random random = new Random();
return Double.valueOf((1005-95) / 100);
最佳答案
要生成 1.1 到 10 之间的随机值,请使用以下代码:
double min = 1.1d;
double max = 10d;
Random r = new Random();
double value = min + (max - min) * r.nextDouble();
Afterwarsds 你可以使用 Math.floor(value)
来计算你的结果
关于Java Random() 四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46805627/