Java Random() 四舍五入

标签 java random

我正在使用 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/

相关文章:

java - 如何使用findViewById获取ListView

java - 在窗口应用程序中将图像添加到内容 Pane

java - Android 中的图像切换问题

java - 如何在 libgdx 中计算按钮按下和按钮释放之间的时间

excel - 对 n 个随机数求和(用于模拟目的)

random - 为什么我们需要 GUID 的规范格式?

java - IntStream 来自 Random 和 Random 并发

java - 关闭扫描器会抛出 java.util.NoSuchElementException

java - 使 JRadioButton 随机

java - 如何在 Clojure 中实现全包随机数函数?