hcarrasko Asked: 2020-12-18 03:43:18 +0800 CST 2020-12-18 03:43:18 +0800 CST 2020-12-18 03:43:18 +0800 CST 如何在Java中生成范围内的随机十进制数? 772 我正在尝试使用以下代码在给定范围内的 Java 中生成随机数: int randomNum = rand.nextInt((max - min) + 1) + min; 但这只会在整数集中为我生成数字。我怎样才能得到也是小数的数字? java 6 Answers Voted Best Answer eferion 2020-12-18T04:03:16+08:002020-12-18T04:03:16+08:00 rand应该有方法nextDouble。此方法不接受任何参数,因为它生成一个介于 0.0 和 1.0 之间的数字。要将该数字调整到您的范围,您可以使用类似于以下的代码: double randomNum = min + ( max - min ) * rand.nextDouble(); Jorgesys 2020-12-18T07:38:22+08:002020-12-18T07:38:22+08:00 这是一个非常有用的方法,使用起来很重要nextDouble() public static double getRandom(Double valorMinimo, Double valorMaximo) { Random rand = new Random(); return valorMinimo + ( valorMaximo - valorMinimo ) * rand.nextDouble(); } nextDouble() 方法,用于从随机生成器的此数字的序列中获取 0.0 和 1.0 之间的下一个伪随机、均匀分布的值。 举个例子: 使用上述方法,在值 1.1 和 2.5 之间写入 100 个随机数: System.out.println(String.valueOf(getRandom(1.1, 2.5))); 在这里看演示! Joel Ibaceta 2020-12-18T03:54:35+08:002020-12-18T03:54:35+08:00 你能用这个吗 (Math.random()*20)+1; 这将在 1 到 19 之间创建一个带小数的随机数。 19 = 20 - 1 // Max - Min hecnabae 2020-12-18T04:05:00+08:002020-12-18T04:05:00+08:00 您可以生成一个最小值为 ( min + 100) 的随机数,然后将获得的数字除以100.0。这样你会得到一个小数点后两位的数字: double randomNum = rand.nextInt((max - min) + 1) + min + 100 / 100.0 ArthurChamz 2020-12-18T04:12:07+08:002020-12-18T04:12:07+08:00 您可以使用此代码,请注意此代码永远不会为您提供以下值max: function randomInRange(min, max) { return Math.random() * (max-min) + min; } 使用类Math,当然你也可以使用nextDouble类函数Random。 oscarnp1 2020-12-18T15:19:51+08:002020-12-18T15:19:51+08:00 Random r = new Random(); double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();
rand
应该有方法nextDouble
。此方法不接受任何参数,因为它生成一个介于 0.0 和 1.0 之间的数字。要将该数字调整到您的范围,您可以使用类似于以下的代码:这是一个非常有用的方法,使用起来很重要
nextDouble()
举个例子:
使用上述方法,在值 1.1 和 2.5 之间写入 100 个随机数:
在这里看演示!
你能用这个吗
这将在 1 到 19 之间创建一个带小数的随机数。
您可以生成一个最小值为 (
min + 100
) 的随机数,然后将获得的数字除以100.0
。这样你会得到一个小数点后两位的数字:您可以使用此代码,请注意此代码永远不会为您提供以下值
max
:使用类
Math
,当然你也可以使用nextDouble
类函数Random
。