在Thread.sleep()函数java中使用double值

Zec*_*uel 0 java

基本上我的问题是我有一个随机数生成器,double在给定int + - 0.5的用户之间生成一个随机值:

double actualClickInterval = (ThreadLocalRandom.current().nextDouble(clickinterval - 0.5, clickinterval + 0.5 +1));
Run Code Online (Sandbox Code Playgroud)

clickinterval用户在哪里给int.

应该将此double值传递给Thread.sleep(),这需要Long值.如果我将其转换为Long值,小数将消失.有没有办法解决?

当前Thread.sleep()代码如下:

Thread.sleep((long)actualClickInterval * 1000 - 500); 
Run Code Online (Sandbox Code Playgroud)

我需要将值设置为double,因为执行的任务需要使用<500ms长的随机延迟来完成.任何其他方法也是受欢迎的.

Bar*_*chs 5

首先乘以1000,然后转换为long:

Thread.sleep((long)(actualClickInterval * 1000) - 500); 
Run Code Online (Sandbox Code Playgroud)

如果你第一次转换,那么你1来自1.3,时间10001000.如果你第一次乘,你这样做1.3 * 1000,这是1300.0,并转换为long,使得1300.