随机数,负最小值或最大值,小数点数为0.5

时间:2018-02-20 12:40:52

标签: java

所以基本上我需要在min和max之间生成一个数字(也可能是负数),并且应该有可能数字以小数0.5结束。

因此,例如,数字可以是5,6,-8.5,3.5。

我有这个来生成我的号码(例子):

rand.nextInt(20 + 1 + 10) - 10;

2 个答案:

答案 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]范围内创建一个正确的值来做到这一点(包括最小值和最大值作为可能值!)