所以基本上我需要在min和max之间生成一个数字(也可能是负数),并且应该有可能数字以小数0.5结束。
因此,例如,数字可以是5,6,-8.5,3.5。
我有这个来生成我的号码(例子):
rand.nextInt(20 + 1 + 10) - 10;
答案 0 :(得分:4)
您可以生成一个两倍于所需范围的整数,然后将其减半。
这样的事情:
int min = -5;
int max = 15;
double r = min + 0.5 * rand.nextInt(2 * (max - min));
如果您希望随机范围中包含max
,则:
double r = min + 0.5 * rand.nextInt(2 * (max + 1 - min));
答案 1 :(得分:0)
Math.round((min + (rand.nextDouble() * Math.abs(max - min))) / 0.5) * 0.5;
应该通过在[min,max]范围内创建一个正确的值来做到这一点(包括最小值和最大值作为可能值!)