基本上我的问题是我有一个随机数生成器,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长的随机延迟来完成.任何其他方法也是受欢迎的.
首先乘以1000,然后转换为long:
Thread.sleep((long)(actualClickInterval * 1000) - 500);
Run Code Online (Sandbox Code Playgroud)
如果你第一次转换,那么你1来自1.3,时间1000是1000.如果你第一次乘,你这样做1.3 * 1000,这是1300.0,并转换为long,使得1300.
| 归档时间: |
|
| 查看次数: |
624 次 |
| 最近记录: |