如何将java.util.random转换为int

时间:2019-04-30 16:00:10

标签: java java.util.random

我正在使用带有种子的java.util.random(new Random(System.currentTimeMillis())

  • 我需要将其转换为int(我的业务逻辑)
  • 我尝试使用.nextInt(),但这无济于事
  

//我的业务逻辑-下面的代码处于循环中,旨在   每次都会生成一个不同的随机数//

int randomNumber=(int) Math.floor(inputParam1 * (new Random(System.currentTimeMillis())).nextInt()));

预期的输出:每次将以int格式生成一个新的随机数

实际输出:  -使用nextInt()每次生成相同的数字  -如果不转换为Int,则无法使用“随机”
   上面显示了我的int变量的数据类型

3 个答案:

答案 0 :(得分:1)

每次要生成Double时都不要创建Random的新实例。

您可以创建一个实例,然后在需要新的double时调用它。

Random rand = new Random(System.currentTimeMillis());

// loop starts here

  double randomNumber = Math.floor(inputParam1 * rand.nextDouble());

// If you want an integer up to inputParam1 as it seems, you can do:

  int randomInt = (int) randomNumber;

您也可以使用Math.random()作为建议的人。

答案 1 :(得分:0)

我不确定为什么要将其强制转换为int

double randomNumber =新的Random(System.currentTimeMillis())。nextDouble(); 这将给出一个介于0和1之间的随机双数

答案 2 :(得分:0)

将以下代码转换为int没有意义。

df.groupby(pd.to_datetime(df[2]).astype('datetime64[s]')).head(1)

然后,请检查此答案Using Random Number Generator with Current Time vs Without

以上链接中最重要的部分:

  

如果您希望两次运行之间的随机序列相同,则可以   指定种子。