我正在尝试使用百分比生成随机数,如下所示:
60%的几率生成从70到100的数字,
有20%的机会从50到70生成数字
等等 然后把它放在TextView中。但由于某种原因,我得到一些奇怪的长十进制数字,如0.44859123121等,我怎样才能生成完整的数字?喜欢99,80,70等 这是我的代码:
Random rng = new Random();
double doubl = Math.random();
if (doubl < 0.6) {
int r1 = rng.nextInt(100 - 70) + 70;
// 60% chance
} else if (doubl < 0.65) {
int r1 = rng.nextInt(0 - 30) + 0;
// 5%
} else if (doubl < 0.80) {
// 15% chance
int r1 = rng.nextInt(30 - 50) + 30;
} else {
// 20% chance
int r1 = rng.nextInt(50 - 70) + 50;
}
result.setText(doubl+"%");
答案 0 :(得分:2)
将生成的随机整数r1
放在结果中,而不是doubl
,它是0到1之间的随机数。
同时修复对nextInt()
的调用,以便您不会使用负值调用它。例如70 - 50
而不是50 - 70
。